diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp index 2b46e80e70..2166a1427d 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp @@ -579,6 +579,11 @@ void JitArm64::cmp(UGeckoInstruction inst) s64 B = static_cast(gpr.GetImm(b)); MOVI2R(CR, A - B); } + else if (gpr.IsImm(a) && !gpr.GetImm(a)) + { + NEG(EncodeRegTo32(CR), gpr.R(b)); + SXTW(CR, EncodeRegTo32(CR)); + } else if (gpr.IsImm(b) && !gpr.GetImm(b)) { SXTW(CR, gpr.R(a));