[Android] Get CArmRecompilerOps::CompileCop1Test to use temp registers

This commit is contained in:
zilmar 2016-10-02 06:54:22 +11:00
parent d8bab5ac7f
commit 41baaa015b
1 changed files with 8 additions and 4 deletions

View File

@ -4161,10 +4161,14 @@ void CArmRecompilerOps::CompileCop1Test()
if (m_RegWorkingSet.GetFpuBeenUsed())
return;
MoveVariableToArmReg(&g_Reg->STATUS_REGISTER, "STATUS_REGISTER", Arm_R1);
MoveConstToArmReg(Arm_R2, STATUS_CU1, "STATUS_REGISTER");
AndArmRegToArmReg(Arm_R2, Arm_R1);
CompareArmRegToConst(Arm_R1, 0);
ArmReg TempReg1 = m_RegWorkingSet.Map_TempReg(Arm_Any, -1, false);
ArmReg TempReg2 = m_RegWorkingSet.Map_TempReg(Arm_Any, -1, false);
MoveVariableToArmReg(&g_Reg->STATUS_REGISTER, "STATUS_REGISTER", TempReg1);
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);
m_RegWorkingSet.SetFpuBeenUsed(true);
}