JitArm64: Fix rlwinmx.

Seems like I was wrong that ANDI2R doesn't require a temporary register here.
There is *one* case when the mask won't fit in the ARM AND instruction:
mask = 0xFFFFFFFF
But let's just use MOV instead of AND here for this case...
This commit is contained in:
degasus
2017-08-22 08:47:43 +02:00
parent 9cdf4b5eaa
commit b00c60618b
2 changed files with 7 additions and 2 deletions

View File

@ -532,7 +532,12 @@ void JitArm64::rlwinmx(UGeckoInstruction inst)
gpr.BindToRegister(a, a == s);
if (!inst.SH)
if (!inst.SH && mask == 0xFFFFFFFF)
{
if (a != s)
MOV(gpr.R(a), gpr.R(s));
}
else if (!inst.SH)
{
// Immediate mask
ANDI2R(gpr.R(a), gpr.R(s), mask);