From f9ab25152cadac3b01fd20f0a582f060b6589cb4 Mon Sep 17 00:00:00 2001 From: Fiora Date: Thu, 25 Sep 2014 21:45:25 -0700 Subject: [PATCH] JIT: fix bugs with ComputeRC in branch merging patch We really, really need to be sure the input to ComputeRC is a register. --- Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp index 7cee613b9d..065b2cd65c 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp @@ -589,6 +589,10 @@ void Jit64::boolX(UGeckoInstruction inst) gpr.BindToRegister(a, false, true); MOV(32, gpr.R(a), gpr.R(s)); } + else if (inst.Rc) + { + gpr.BindToRegister(a, true, false); + } needs_test = true; } else if ((inst.SUBOP10 == 476 /* nandx */) || (inst.SUBOP10 == 124 /* norx */)) @@ -599,6 +603,10 @@ void Jit64::boolX(UGeckoInstruction inst) gpr.BindToRegister(a, false, true); MOV(32, gpr.R(a), gpr.R(s)); } + else if (inst.Rc) + { + gpr.BindToRegister(a, true, true); + } else { gpr.KillImmediate(a, true, true);