summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2023-12-16 17:34:33 +0100
committerJosJuice <josjuice@gmail.com>2023-12-16 17:34:33 +0100
commitb5a95b78041a36871fc8406913ada8311bc6884a (patch)
treea2eabe9ec5a618dee98bc50919e9a35378cc9ed5 /Source/Core
parentf87a4f03855208397972cbb1f545cd0cd5122428 (diff)
JitArm64: Add rlwinmx case for only shifting
Small optimization.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp
index 0e8dd60658..fe8ce107cd 100644
--- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp
+++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp
@@ -784,6 +784,10 @@ void JitArm64::rlwinmx(UGeckoInstruction inst)
// Immediate mask
AND(gpr.R(a), gpr.R(s), LogicalImm(mask, 32));
}
+ else if (mask == 0xFFFFFFFF)
+ {
+ ROR(gpr.R(a), gpr.R(s), 32 - inst.SH);
+ }
else if (inst.ME == 31 && 31 < inst.SH + inst.MB)
{
// Bit select of the upper part