clean up pc == target for REGIMM_BGEZL

This commit is contained in:
zilmar 2012-10-20 09:15:58 +11:00
parent d6a1a8cf52
commit de5f7d543f
2 changed files with 7 additions and 10 deletions

View File

@ -433,7 +433,10 @@ bool CCodeBlock::AnalyzeInstruction ( DWORD PC, DWORD & TargetPC, DWORD & Contin
TargetPC = PC + ((short)Command.offset << 2) + 4; TargetPC = PC + ((short)Command.offset << 2) + 4;
if (TargetPC == PC) if (TargetPC == PC)
{ {
_Notify->BreakPoint(__FILE__,__LINE__); if (!DelaySlotEffectsCompare(PC,Command.rs,0))
{
PermLoop = true;
}
} }
ContinuePC = PC + 8; ContinuePC = PC + 8;
LikelyBranch = true; LikelyBranch = true;

View File

@ -268,17 +268,11 @@ bool LoopAnalysis::CheckLoopRegisterUsage( CCodeSection * Section)
}*/ }*/
if (m_PC == m_PC + ((short)m_Command.offset << 2) + 4) if (m_PC == m_PC + ((short)m_Command.offset << 2) + 4)
{ {
_Notify->BreakPoint(__FILE__,__LINE__); if (!DelaySlotEffectsCompare(m_PC,m_Command.rs,0) && !Section->m_Jump.PermLoop)
#ifdef tofix
if (!DelaySlotEffectsCompare(m_PC,m_Command.rs,m_Command.rt))
{ {
if (!Section->m_Jump.PermLoop) _Notify->BreakPoint(__FILE__,__LINE__);
{
_Notify->BreakPoint(__FILE__,__LINE__);
}
} }
#endif }
}
#endif #endif
break; break;
case R4300i_REGIMM_BLTZAL: case R4300i_REGIMM_BLTZAL: