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;
if (TargetPC == PC)
{
_Notify->BreakPoint(__FILE__,__LINE__);
if (!DelaySlotEffectsCompare(PC,Command.rs,0))
{
PermLoop = true;
}
}
ContinuePC = PC + 8;
LikelyBranch = true;

View File

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