mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-25 07:09:48 -06:00
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.
This commit is contained in:
@ -1861,8 +1861,8 @@ void Jit64::srwx(UGeckoInstruction inst)
|
|||||||
// no register choice
|
// no register choice
|
||||||
gpr.FlushLockX(ECX);
|
gpr.FlushLockX(ECX);
|
||||||
gpr.Lock(a, b, s);
|
gpr.Lock(a, b, s);
|
||||||
gpr.BindToRegister(a, (a == b || a == s), true);
|
|
||||||
MOV(32, R(ECX), gpr.R(b));
|
MOV(32, R(ECX), gpr.R(b));
|
||||||
|
gpr.BindToRegister(a, a == s, true);
|
||||||
if (a != s)
|
if (a != s)
|
||||||
{
|
{
|
||||||
MOV(32, gpr.R(a), gpr.R(s));
|
MOV(32, gpr.R(a), gpr.R(s));
|
||||||
@ -1900,8 +1900,8 @@ void Jit64::slwx(UGeckoInstruction inst)
|
|||||||
// no register choice
|
// no register choice
|
||||||
gpr.FlushLockX(ECX);
|
gpr.FlushLockX(ECX);
|
||||||
gpr.Lock(a, b, s);
|
gpr.Lock(a, b, s);
|
||||||
gpr.BindToRegister(a, (a == b || a == s), true);
|
|
||||||
MOV(32, R(ECX), gpr.R(b));
|
MOV(32, R(ECX), gpr.R(b));
|
||||||
|
gpr.BindToRegister(a, a == s, true);
|
||||||
if (a != s)
|
if (a != s)
|
||||||
{
|
{
|
||||||
MOV(32, gpr.R(a), gpr.R(s));
|
MOV(32, gpr.R(a), gpr.R(s));
|
||||||
|
Reference in New Issue
Block a user