diff options
| author | JosJuice <josjuice@gmail.com> | 2025-08-16 18:19:08 +0200 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2025-08-21 20:56:06 +0200 |
| commit | 596b29017757aefd90b5c8fb39006f70ec060752 (patch) | |
| tree | 0f58d277219b3825be75ed2bad6ae444c62fe87e /Source | |
| parent | 90a137ffdc96199c4e6105a4aadda30351a5ca75 (diff) | |
JitArm64: Add missing ORR pattern in MOVI2RImpl
We should attempt to use not only mirrored versions of the immediate as
an ORR base, but also the immediate itself. This lets us emit certain
64-bit constants using fewer instructions.
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/Common/Arm64Emitter.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Source/Core/Common/Arm64Emitter.cpp b/Source/Core/Common/Arm64Emitter.cpp index 88d4109979..cbc114da5f 100644 --- a/Source/Core/Common/Arm64Emitter.cpp +++ b/Source/Core/Common/Arm64Emitter.cpp @@ -1908,7 +1908,7 @@ void ARM64XEmitter::MOVI2RImpl(ARM64Reg Rd, T imm) { if constexpr (sizeof(T) == 8) { - for (u64 orr_imm : {(imm << 32) | (imm & 0x0000'0000'FFFF'FFFF), + for (u64 orr_imm : {imm, (imm << 32) | (imm & 0x0000'0000'FFFF'FFFF), (imm & 0xFFFF'FFFF'0000'0000) | (imm >> 32), (imm << 48) | (imm & 0x0000'FFFF'FFFF'0000) | (imm >> 48)}) { |
