From 4547b649591b3836e424a42a00b46cd8bba6d46c Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Sun, 18 Jan 2015 16:42:30 -0600 Subject: [PATCH] [AArch64] Fixe a bug in constant propagated ComputeRC. Must not have been thinking, we do want to sign extend when the highest bit is set. --- Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp index 14da56ec7c..f32a563a86 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_Integer.cpp @@ -31,8 +31,8 @@ void JitArm64::ComputeRC(u32 imm, int crf) ARM64Reg WA = gpr.GetReg(); ARM64Reg XA = EncodeRegTo64(WA); - MOVI2R(WA, imm); - if (!(imm & 0x80000000)) + MOVI2R(XA, imm); + if (imm & 0x80000000) SXTW(XA, WA); STR(INDEX_UNSIGNED, XA, X29, PPCSTATE_OFF(cr_val[crf]));