[Project64] Add CArmRegInfo::UnProtectGPR
This commit is contained in:
parent
d1a2e29f9b
commit
94c9cc1848
Source/Project64-core/N64System/Recompiler/Arm
|
@ -1029,6 +1029,25 @@ void CArmRegInfo::ProtectGPR(uint32_t Reg)
|
||||||
SetArmRegProtected(GetMipsRegMapLo(Reg), true);
|
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)
|
const char * CArmRegInfo::VariableMapName(VARIABLE_MAPPED variable)
|
||||||
{
|
{
|
||||||
switch (variable)
|
switch (variable)
|
||||||
|
|
|
@ -63,6 +63,7 @@ public:
|
||||||
ArmReg Map_Variable(VARIABLE_MAPPED variable, ArmReg Reg = Arm_Any);
|
ArmReg Map_Variable(VARIABLE_MAPPED variable, ArmReg Reg = Arm_Any);
|
||||||
ArmReg GetVariableReg(VARIABLE_MAPPED variable) const;
|
ArmReg GetVariableReg(VARIABLE_MAPPED variable) const;
|
||||||
void ProtectGPR(uint32_t Reg);
|
void ProtectGPR(uint32_t Reg);
|
||||||
|
void UnProtectGPR(uint32_t Reg);
|
||||||
void UnMap_AllFPRs();
|
void UnMap_AllFPRs();
|
||||||
ArmReg UnMap_TempReg(bool TempMapping);
|
ArmReg UnMap_TempReg(bool TempMapping);
|
||||||
void UnMap_GPR(uint32_t Reg, bool WriteBackValue);
|
void UnMap_GPR(uint32_t Reg, bool WriteBackValue);
|
||||||
|
|
Loading…
Reference in New Issue