[Project64] Add CArmRegInfo::UnProtectGPR

This commit is contained in:
zilmar 2016-11-23 08:48:41 +11:00
parent d1a2e29f9b
commit 94c9cc1848
2 changed files with 20 additions and 0 deletions

View File

@ -1029,6 +1029,25 @@ void CArmRegInfo::ProtectGPR(uint32_t Reg)
SetArmRegProtected(GetMipsRegMapLo(Reg), true);
}
void CArmRegInfo::UnProtectGPR(uint32_t Reg)
{
if (m_InCallDirect)
{
CPU_Message("%s: in CallDirect", __FUNCTION__);
g_Notify->BreakPoint(__FILE__, __LINE__);
return;
}
if (IsUnknown(Reg) || IsConst(Reg))
{
return;
}
if (Is64Bit(Reg))
{
SetArmRegProtected(GetMipsRegMapHi(Reg), false);
}
SetArmRegProtected(GetMipsRegMapLo(Reg), false);
}
const char * CArmRegInfo::VariableMapName(VARIABLE_MAPPED variable)
{
switch (variable)

View File

@ -63,6 +63,7 @@ public:
ArmReg Map_Variable(VARIABLE_MAPPED variable, ArmReg Reg = Arm_Any);
ArmReg GetVariableReg(VARIABLE_MAPPED variable) const;
void ProtectGPR(uint32_t Reg);
void UnProtectGPR(uint32_t Reg);
void UnMap_AllFPRs();
ArmReg UnMap_TempReg(bool TempMapping);
void UnMap_GPR(uint32_t Reg, bool WriteBackValue);