Merge pull request #12731 from JosJuice/jitarm64-mfcr-ubfx
JitArm64: Skip UBFX in mfcr
This commit is contained in:
commit
b6f0e8876e
|
@ -672,6 +672,7 @@ void JitArm64::mfcr(UGeckoInstruction inst)
|
||||||
ARM64Reg WB = gpr.GetReg();
|
ARM64Reg WB = gpr.GetReg();
|
||||||
ARM64Reg WC = gpr.GetReg();
|
ARM64Reg WC = gpr.GetReg();
|
||||||
ARM64Reg XA = EncodeRegTo64(WA);
|
ARM64Reg XA = EncodeRegTo64(WA);
|
||||||
|
ARM64Reg XB = EncodeRegTo64(WB);
|
||||||
ARM64Reg XC = EncodeRegTo64(WC);
|
ARM64Reg XC = EncodeRegTo64(WC);
|
||||||
|
|
||||||
for (int i = 0; i < 8; i++)
|
for (int i = 0; i < 8; i++)
|
||||||
|
@ -683,15 +684,14 @@ void JitArm64::mfcr(UGeckoInstruction inst)
|
||||||
static_assert(PowerPC::CR_SO_BIT == 0);
|
static_assert(PowerPC::CR_SO_BIT == 0);
|
||||||
static_assert(PowerPC::CR_LT_BIT == 3);
|
static_assert(PowerPC::CR_LT_BIT == 3);
|
||||||
static_assert(PowerPC::CR_EMU_LT_BIT - PowerPC::CR_EMU_SO_BIT == 3);
|
static_assert(PowerPC::CR_EMU_LT_BIT - PowerPC::CR_EMU_SO_BIT == 3);
|
||||||
UBFX(XC, CR, PowerPC::CR_EMU_SO_BIT, 4);
|
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
{
|
{
|
||||||
MOVI2R(WB, PowerPC::CR_SO | PowerPC::CR_LT);
|
MOVI2R(XB, PowerPC::CR_SO | PowerPC::CR_LT);
|
||||||
AND(WA, WC, WB);
|
AND(XA, XB, CR, ArithOption(CR, ShiftType::LSR, PowerPC::CR_EMU_SO_BIT));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
AND(WC, WC, WB);
|
AND(XC, XB, CR, ArithOption(CR, ShiftType::LSR, PowerPC::CR_EMU_SO_BIT));
|
||||||
ORR(XA, XC, XA, ArithOption(XA, ShiftType::LSL, 4));
|
ORR(XA, XC, XA, ArithOption(XA, ShiftType::LSL, 4));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue