[Android] keep Arm_R10 just temp register

This commit is contained in:
zilmar 2016-12-01 21:22:14 +11:00
parent 6aae910a97
commit ae0d3fab48
1 changed files with 6 additions and 6 deletions

View File

@ -17,7 +17,7 @@
#include <Project64-core/N64System/Recompiler/Arm/ArmRegInfo.h> #include <Project64-core/N64System/Recompiler/Arm/ArmRegInfo.h>
CArmRegInfo::CArmRegInfo() : CArmRegInfo::CArmRegInfo() :
m_InCallDirect(false) m_InCallDirect(false)
{ {
for (int32_t i = 0; i < 32; i++) for (int32_t i = 0; i < 32; i++)
{ {
@ -596,8 +596,8 @@ CArmOps::ArmReg CArmRegInfo::UnMap_TempReg(bool TempMapping)
if (TempMapping) if (TempMapping)
{ {
if (GetArmRegMapped(Arm_R11) == Temp_Mapped && !GetArmRegProtected(Arm_R11)) { return Arm_R11; } if (GetArmRegMapped(Arm_R11) == Temp_Mapped && !GetArmRegProtected(Arm_R11)) { return Arm_R11; }
}
if (GetArmRegMapped(Arm_R10) == Temp_Mapped && !GetArmRegProtected(Arm_R10)) { return Arm_R10; } if (GetArmRegMapped(Arm_R10) == Temp_Mapped && !GetArmRegProtected(Arm_R10)) { return Arm_R10; }
}
if (GetArmRegMapped(Arm_R9) == Temp_Mapped && !GetArmRegProtected(Arm_R9)) { return Arm_R9; } if (GetArmRegMapped(Arm_R9) == Temp_Mapped && !GetArmRegProtected(Arm_R9)) { return Arm_R9; }
if (GetArmRegMapped(Arm_R8) == Temp_Mapped && !GetArmRegProtected(Arm_R8)) { return Arm_R8; } if (GetArmRegMapped(Arm_R8) == Temp_Mapped && !GetArmRegProtected(Arm_R8)) { return Arm_R8; }
@ -710,8 +710,8 @@ CArmOps::ArmReg CArmRegInfo::FreeArmReg(bool TempMapping)
if (TempMapping) if (TempMapping)
{ {
if ((GetArmRegMapped(Arm_R11) == NotMapped || GetArmRegMapped(Arm_R11) == Temp_Mapped) && !GetArmRegProtected(Arm_R11)) { return Arm_R11; } if ((GetArmRegMapped(Arm_R11) == NotMapped || GetArmRegMapped(Arm_R11) == Temp_Mapped) && !GetArmRegProtected(Arm_R11)) { return Arm_R11; }
}
if ((GetArmRegMapped(Arm_R10) == NotMapped || GetArmRegMapped(Arm_R10) == Temp_Mapped) && !GetArmRegProtected(Arm_R10)) { return Arm_R10; } if ((GetArmRegMapped(Arm_R10) == NotMapped || GetArmRegMapped(Arm_R10) == Temp_Mapped) && !GetArmRegProtected(Arm_R10)) { return Arm_R10; }
}
if ((GetArmRegMapped(Arm_R9) == NotMapped || GetArmRegMapped(Arm_R9) == Temp_Mapped) && !GetArmRegProtected(Arm_R9)) { return Arm_R9; } if ((GetArmRegMapped(Arm_R9) == NotMapped || GetArmRegMapped(Arm_R9) == Temp_Mapped) && !GetArmRegProtected(Arm_R9)) { return Arm_R9; }
if ((GetArmRegMapped(Arm_R8) == NotMapped || GetArmRegMapped(Arm_R8) == Temp_Mapped) && !GetArmRegProtected(Arm_R8)) { return Arm_R8; } if ((GetArmRegMapped(Arm_R8) == NotMapped || GetArmRegMapped(Arm_R8) == Temp_Mapped) && !GetArmRegProtected(Arm_R8)) { return Arm_R8; }
@ -721,12 +721,12 @@ CArmOps::ArmReg CArmRegInfo::FreeArmReg(bool TempMapping)
int32_t MapCount[Arm_R12]; int32_t MapCount[Arm_R12];
ArmReg MapReg[Arm_R12]; ArmReg MapReg[Arm_R12];
for (int32_t i = 0, n = TempMapping ? Arm_R12 : Arm_R11; i < n; i++) for (int32_t i = 0, n = TempMapping ? Arm_R12 : Arm_R10; i < n; i++)
{ {
MapCount[i] = GetArmRegMapOrder((ArmReg)i); MapCount[i] = GetArmRegMapOrder((ArmReg)i);
MapReg[i] = (ArmReg)i; MapReg[i] = (ArmReg)i;
} }
for (int32_t i = 0, n = TempMapping ? Arm_R12 : Arm_R11; i < n; i++) for (int32_t i = 0, n = TempMapping ? Arm_R12 : Arm_R10; i < n; i++)
{ {
bool changed = false; bool changed = false;
for (int32_t z = 0; z < n - 1; z++) for (int32_t z = 0; z < n - 1; z++)
@ -749,7 +749,7 @@ CArmOps::ArmReg CArmRegInfo::FreeArmReg(bool TempMapping)
} }
} }
for (int32_t i = 0, n = TempMapping ? Arm_R12 : Arm_R11; i < n; i++) for (int32_t i = 0, n = TempMapping ? Arm_R12 : Arm_R10; i < n; i++)
{ {
if (((MapCount[i] > 0 && GetArmRegMapped(MapReg[i]) == GPR_Mapped) || GetArmRegMapped(MapReg[i]) == Variable_Mapped) && !GetArmRegProtected((ArmReg)MapReg[i])) if (((MapCount[i] > 0 && GetArmRegMapped(MapReg[i]) == GPR_Mapped) || GetArmRegMapped(MapReg[i]) == Variable_Mapped) && !GetArmRegProtected((ArmReg)MapReg[i]))
{ {