[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 (IsKnown(m_Opcode.rs))
if (IsKnown(m_Opcode.rs) && IsMapped(m_Opcode.rs))
{
g_Notify->BreakPoint(__FILE__, __LINE__);
#ifdef tofix
MoveX86regToVariable(GetMipsRegMapLo(m_Opcode.rs), &R4300iOp::m_JumpToLocation, "R4300iOp::m_JumpToLocation");
MoveArmRegToVariable(GetMipsRegMapLo(m_Opcode.rs), &R4300iOp::m_JumpToLocation, "R4300iOp::m_JumpToLocation");
m_RegWorkingSet.WriteBackRegisters();
#endif
}
else
{
@ -2786,7 +2783,10 @@ void CArmRecompilerOps::SPECIAL_JR()
MoveConstToArmReg(PCTempReg, (uint32_t)_PROGRAM_COUNTER, "PROGRAM_COUNTER");
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))
{