[Project64] Update CArmRecompilerOps::SPECIAL_JR

This commit is contained in:
zilmar 2016-11-23 18:39:52 +11:00
parent 49dd2a6ad6
commit 740c13ec79
1 changed files with 6 additions and 6 deletions

View File

@ -2725,13 +2725,10 @@ void CArmRecompilerOps::SPECIAL_JR()
{ {
if ((m_CompilePC & 0xFFC) == 0xFFC) if ((m_CompilePC & 0xFFC) == 0xFFC)
{ {
if (IsKnown(m_Opcode.rs)) if (IsKnown(m_Opcode.rs) && IsMapped(m_Opcode.rs))
{ {
g_Notify->BreakPoint(__FILE__, __LINE__); MoveArmRegToVariable(GetMipsRegMapLo(m_Opcode.rs), &R4300iOp::m_JumpToLocation, "R4300iOp::m_JumpToLocation");
#ifdef tofix
MoveX86regToVariable(GetMipsRegMapLo(m_Opcode.rs), &R4300iOp::m_JumpToLocation, "R4300iOp::m_JumpToLocation");
m_RegWorkingSet.WriteBackRegisters(); m_RegWorkingSet.WriteBackRegisters();
#endif
} }
else else
{ {
@ -2786,7 +2783,10 @@ void CArmRecompilerOps::SPECIAL_JR()
MoveConstToArmReg(PCTempReg, (uint32_t)_PROGRAM_COUNTER, "PROGRAM_COUNTER"); MoveConstToArmReg(PCTempReg, (uint32_t)_PROGRAM_COUNTER, "PROGRAM_COUNTER");
if (IsConst(m_Opcode.rs)) if (IsConst(m_Opcode.rs))
{ {
g_Notify->BreakPoint(__FILE__, __LINE__); ArmReg ValueTempReg = m_RegWorkingSet.Map_TempReg(Arm_Any, -1, false);
MoveConstToArmReg(ValueTempReg, GetMipsRegLo(m_Opcode.rs));
StoreArmRegToArmRegPointer(ValueTempReg, PCTempReg, 0);
m_RegWorkingSet.SetArmRegProtected(ValueTempReg, false);
} }
else if (IsMapped(m_Opcode.rs)) else if (IsMapped(m_Opcode.rs))
{ {