dolphin/Source
Sintendo 2cafa0a960 Jit64: divwux - Prefer three-operand IMUL
By taking advantage of three-operand IMUL, we can eliminate a MOV
instruction. This is a small code size win. However, due to IMUL sign
extending the immediate value to 64 bits, we can only apply this when
the magic number's most significant bit is zero.

To ensure this can actually happen, we also minimize the magic number by
checking for trailing zeroes.

Example (Unsigned division by 18)
Before:
41 BE E4 38 8E E3    mov         r14d,0E38E38E4h
4D 0F AF F5          imul        r14,r13
49 C1 EE 24          shr         r14,24h

After:
4D 69 F5 39 8E E3 38 imul        r14,r13,38E38E39h
49 C1 EE 22          shr         r14,22h
2021-05-06 19:54:33 +02:00
..
Android DolphinQt/Android: Unify the JIT naming scheme 2021-04-25 17:19:50 +02:00
Core Jit64: divwux - Prefer three-operand IMUL 2021-05-06 19:54:33 +02:00
DSPSpy DSPSpy: sync Makefile with current devkitPro template 2020-06-08 04:21:41 +01:00
DSPTool Set console's default language/country/region based on computer settings 2021-03-27 10:05:26 +01:00
PCH Fix PCH when building with CMake + Ninja + MSVC on Windows 2021-04-17 17:48:47 +02:00
UnitTests JitArm64: Add unit tests for single/double conversion 2021-04-25 15:56:58 +02:00
VSProps msbuild: re-enable HAS_OPENGL and HAS_VULKAN 2021-01-27 19:10:53 -08:00
.clang-format Require clang-format 9 and reformat source code 2020-01-08 22:18:15 +01:00
CMakeLists.txt CMake: Build with -std:c++latest for MSVC 2021-03-03 23:44:35 +01:00
dolphin-emu.sln msbuild: bundle all dolphin "core" code into single library 2021-01-27 14:29:49 -08:00