diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp index 3a56e58b84..2175f9a219 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp @@ -663,6 +663,11 @@ void JitArm64::cmp(UGeckoInstruction inst) SXTW(CR, gpr.R(a)); SUB(CR, CR, gpr.GetImm(b) >> 12, true); } + else if (gpr.IsImm(b) && (((~gpr.GetImm(b) + 1) & 0xFFF) == (~gpr.GetImm(b) + 1))) + { + SXTW(CR, gpr.R(a)); + ADD(CR, CR, ~gpr.GetImm(b) + 1); + } else { ARM64Reg RA = gpr.R(a);