[Android] Get CArmRecompilerOps::CompileCop1Test to use temp registers
This commit is contained in:
parent
d8bab5ac7f
commit
41baaa015b
|
@ -4161,10 +4161,14 @@ void CArmRecompilerOps::CompileCop1Test()
|
||||||
if (m_RegWorkingSet.GetFpuBeenUsed())
|
if (m_RegWorkingSet.GetFpuBeenUsed())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
MoveVariableToArmReg(&g_Reg->STATUS_REGISTER, "STATUS_REGISTER", Arm_R1);
|
ArmReg TempReg1 = m_RegWorkingSet.Map_TempReg(Arm_Any, -1, false);
|
||||||
MoveConstToArmReg(Arm_R2, STATUS_CU1, "STATUS_REGISTER");
|
ArmReg TempReg2 = m_RegWorkingSet.Map_TempReg(Arm_Any, -1, false);
|
||||||
AndArmRegToArmReg(Arm_R2, Arm_R1);
|
MoveVariableToArmReg(&g_Reg->STATUS_REGISTER, "STATUS_REGISTER", TempReg1);
|
||||||
CompareArmRegToConst(Arm_R1, 0);
|
MoveConstToArmReg(TempReg2, STATUS_CU1, "STATUS_CU1");
|
||||||
|
AndArmRegToArmReg(TempReg1, TempReg2);
|
||||||
|
CompareArmRegToConst(TempReg1, 0);
|
||||||
|
m_RegWorkingSet.SetArmRegProtected(TempReg1,false);
|
||||||
|
m_RegWorkingSet.SetArmRegProtected(TempReg2,false);
|
||||||
CompileExit(m_CompilePC, m_CompilePC, m_RegWorkingSet, CExitInfo::COP1_Unuseable, ArmBranch_Equal);
|
CompileExit(m_CompilePC, m_CompilePC, m_RegWorkingSet, CExitInfo::COP1_Unuseable, ArmBranch_Equal);
|
||||||
m_RegWorkingSet.SetFpuBeenUsed(true);
|
m_RegWorkingSet.SetFpuBeenUsed(true);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue