diff options
| author | JosJuice <josjuice@gmail.com> | 2025-11-10 20:16:21 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-10 20:16:21 +0100 |
| commit | cd4902f0ed68ffac9f1e4ab853f37eefa34e6ae2 (patch) | |
| tree | 08e4e8e09d2e4d955f0fd32bdb885e6f12533a78 /Source/Core/Common/Arm64Emitter.cpp | |
| parent | ac62efaf9233c9c16f6636038d0c2a3c44ac3988 (diff) | |
| parent | c553344282fb8ae43c8ead70a5bfe639dc0412d1 (diff) | |
Merge pull request #13875 from JosJuice/jitarm64-orr-base-without-mirror
JitArm64: Add missing ORR pattern in MOVI2RImpl
Diffstat (limited to 'Source/Core/Common/Arm64Emitter.cpp')
| -rw-r--r-- | Source/Core/Common/Arm64Emitter.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Source/Core/Common/Arm64Emitter.cpp b/Source/Core/Common/Arm64Emitter.cpp index fbf0031704..d78257cf4f 100644 --- a/Source/Core/Common/Arm64Emitter.cpp +++ b/Source/Core/Common/Arm64Emitter.cpp @@ -1908,12 +1908,17 @@ 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)}) { if (LogicalImm(orr_imm, GPRSize::B64)) + { try_base(orr_imm, Approach::ORRBase, false); + + if (instructions_required(best_parts, best_approach) <= 1) + break; + } } } else |
