Adds support back for non-immediate cmp/cmpi to ARMv7 JIT.
This commit is contained in:
parent
0253c35d3a
commit
6743d6ef1f
|
@ -772,7 +772,14 @@ void JitArm::cmp (UGeckoInstruction inst)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
FALLBACK_IF(true);
|
ARMReg rA = gpr.GetReg();
|
||||||
|
ARMReg RA = gpr.R(a);
|
||||||
|
ARMReg RB = gpr.R(b);
|
||||||
|
|
||||||
|
SUB(rA, RA, RB);
|
||||||
|
ComputeRC(rA, crf);
|
||||||
|
|
||||||
|
gpr.Unlock(rA);
|
||||||
}
|
}
|
||||||
void JitArm::cmpi(UGeckoInstruction inst)
|
void JitArm::cmpi(UGeckoInstruction inst)
|
||||||
{
|
{
|
||||||
|
@ -785,8 +792,21 @@ void JitArm::cmpi(UGeckoInstruction inst)
|
||||||
ComputeRC((s32)gpr.GetImm(a) - inst.SIMM_16, crf);
|
ComputeRC((s32)gpr.GetImm(a) - inst.SIMM_16, crf);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
ARMReg rA = gpr.GetReg();
|
||||||
|
ARMReg RA = gpr.R(a);
|
||||||
|
|
||||||
FALLBACK_IF(true);
|
if (inst.SIMM_16 >= 0 && inst.SIMM_16 < 256)
|
||||||
|
{
|
||||||
|
SUB(rA, RA, inst.SIMM_16);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MOVI2R(rA, inst.SIMM_16);
|
||||||
|
SUB(rA, RA, rA);
|
||||||
|
}
|
||||||
|
ComputeRC(rA, crf);
|
||||||
|
|
||||||
|
gpr.Unlock(rA);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JitArm::negx(UGeckoInstruction inst)
|
void JitArm::negx(UGeckoInstruction inst)
|
||||||
|
|
Loading…
Reference in New Issue