[ARM] MicroOps in the branching instructions.

This commit is contained in:
Ryan Houdek 2013-09-19 02:05:57 +00:00
parent 5158aea4dc
commit 1b1b5d2100

View File

@ -85,7 +85,6 @@ void JitArm::rfi(UGeckoInstruction inst)
LDR(rD, R9, PPCSTATE_OFF(msr));
AND(rD, rD, rB); // rD = Masked MSR
STR(rD, R9, PPCSTATE_OFF(msr));
LDR(rB, R9, PPCSTATE_OFF(spr[SPR_SRR1])); // rB contains SRR1 here
@ -230,7 +229,6 @@ void JitArm::bcctrx(UGeckoInstruction inst)
//NPC = CTR & 0xfffffffc;
ARMReg rA = gpr.GetReg();
ARMReg rB = gpr.GetReg();
if(inst.LK_3)
{
@ -239,10 +237,8 @@ void JitArm::bcctrx(UGeckoInstruction inst)
STR(rA, R9, PPCSTATE_OFF(spr[SPR_LR]));
// ARMABI_MOVI2M((u32)&LR, js.compilerPC + 4);
}
MVN(rB, 0x3); // 0xFFFFFFFC
LDR(rA, R9, PPCSTATE_OFF(spr[SPR_CTR]));
AND(rA, rA, rB);
gpr.Unlock(rB);
BIC(rA, rA, 0x3);
WriteExitDestInR(rA);
}
else
@ -264,8 +260,7 @@ void JitArm::bcctrx(UGeckoInstruction inst)
FixupBranch b = B_CC(branch);
LDR(rA, R9, PPCSTATE_OFF(spr[SPR_CTR]));
MVN(rB, 0x3); // 0xFFFFFFFC
AND(rA, rA, rB);
BIC(rA, rA, 0x3);
if (inst.LK_3){
u32 Jumpto = js.compilerPC + 4;
@ -336,9 +331,8 @@ void JitArm::bclrx(UGeckoInstruction inst)
//MOV(32, R(EAX), M(&LR));
//AND(32, R(EAX), Imm32(0xFFFFFFFC));
MVN(rB, 0x3); // 0xFFFFFFFC
LDR(rA, R9, PPCSTATE_OFF(spr[SPR_LR]));
AND(rA, rA, rB);
BIC(rA, rA, 0x3);
if (inst.LK){
u32 Jumpto = js.compilerPC + 4;
MOVI2R(rB, Jumpto);