mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
JitArm64: cmp - Refactor
This commit is contained in:
@ -578,25 +578,24 @@ void JitArm64::cmp(UGeckoInstruction inst)
|
|||||||
s64 A = static_cast<s32>(gpr.GetImm(a));
|
s64 A = static_cast<s32>(gpr.GetImm(a));
|
||||||
s64 B = static_cast<s32>(gpr.GetImm(b));
|
s64 B = static_cast<s32>(gpr.GetImm(b));
|
||||||
MOVI2R(CR, A - B);
|
MOVI2R(CR, A - B);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
else if (gpr.IsImm(b) && !gpr.GetImm(b))
|
||||||
if (gpr.IsImm(b) && !gpr.GetImm(b))
|
|
||||||
{
|
{
|
||||||
SXTW(CR, gpr.R(a));
|
SXTW(CR, gpr.R(a));
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ARM64Reg WA = gpr.GetReg();
|
||||||
|
ARM64Reg XA = EncodeRegTo64(WA);
|
||||||
|
ARM64Reg RA = gpr.R(a);
|
||||||
|
ARM64Reg RB = gpr.R(b);
|
||||||
|
|
||||||
ARM64Reg WA = gpr.GetReg();
|
SXTW(XA, RA);
|
||||||
ARM64Reg XA = EncodeRegTo64(WA);
|
SXTW(CR, RB);
|
||||||
ARM64Reg RA = gpr.R(a);
|
SUB(CR, XA, CR);
|
||||||
ARM64Reg RB = gpr.R(b);
|
|
||||||
|
|
||||||
SXTW(XA, RA);
|
gpr.Unlock(WA);
|
||||||
SXTW(CR, RB);
|
}
|
||||||
SUB(CR, XA, CR);
|
|
||||||
|
|
||||||
gpr.Unlock(WA);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void JitArm64::cmpl(UGeckoInstruction inst)
|
void JitArm64::cmpl(UGeckoInstruction inst)
|
||||||
|
Reference in New Issue
Block a user