diff --git a/Source/Core/Core/PowerPC/JitArm64/Jit.h b/Source/Core/Core/PowerPC/JitArm64/Jit.h index ad9c7e4672f2..6d0ded667a5f 100644 --- a/Source/Core/Core/PowerPC/JitArm64/Jit.h +++ b/Source/Core/Core/PowerPC/JitArm64/Jit.h @@ -351,7 +351,7 @@ class JitArm64 : public JitBase, public Arm64Gen::ARM64CodeBlock, public CommonA void UpdateRoundingMode(); void ComputeRC0(Arm64Gen::ARM64Reg reg); - void ComputeRC0(u64 imm); + void ComputeRC0(u32 imm); void ComputeCarry(Arm64Gen::ARM64Reg reg); // reg must contain 0 or 1 void ComputeCarry(bool carry); void ComputeCarry(); diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp index b5ebfc8bf4e5..dd7506806420 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp @@ -37,12 +37,10 @@ void JitArm64::ComputeRC0(ARM64Reg reg) SXTW(gpr.CR(0), reg); } -void JitArm64::ComputeRC0(u64 imm) +void JitArm64::ComputeRC0(u32 imm) { gpr.BindCRToRegister(0, false); - MOVI2R(gpr.CR(0), imm); - if (imm & 0x80000000) - SXTW(gpr.CR(0), EncodeRegTo32(gpr.CR(0))); + MOVI2R(gpr.CR(0), s64(s32(imm))); } void JitArm64::ComputeCarry(ARM64Reg reg)