From a570c6b4a47accf098d658afe3e429e57742db78 Mon Sep 17 00:00:00 2001 From: Fiora Date: Sun, 24 Aug 2014 11:29:58 -0700 Subject: [PATCH] JIT64: tweak srwx/slwx BindToRegister arguments Register B gets immediately moved into the shift register, so even if a == b it doesn't need to be loaded. --- Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp index af40bbef78..62e6425d4a 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit_Integer.cpp @@ -1861,8 +1861,8 @@ void Jit64::srwx(UGeckoInstruction inst) // no register choice gpr.FlushLockX(ECX); gpr.Lock(a, b, s); - gpr.BindToRegister(a, (a == b || a == s), true); MOV(32, R(ECX), gpr.R(b)); + gpr.BindToRegister(a, a == s, true); if (a != s) { MOV(32, gpr.R(a), gpr.R(s)); @@ -1900,8 +1900,8 @@ void Jit64::slwx(UGeckoInstruction inst) // no register choice gpr.FlushLockX(ECX); gpr.Lock(a, b, s); - gpr.BindToRegister(a, (a == b || a == s), true); MOV(32, R(ECX), gpr.R(b)); + gpr.BindToRegister(a, a == s, true); if (a != s) { MOV(32, gpr.R(a), gpr.R(s));