Recompiler: deal with edge condition of Normal_NoSysCheck

This commit is contained in:
zilmar 2013-01-29 21:42:15 +11:00
parent 4fe5d2e224
commit e814eb967b
1 changed files with 20 additions and 8 deletions

View File

@ -1746,15 +1746,27 @@ bool CCodeSection::InheritParentInfo ( void )
}
}
UpdateCounters(m_RegWorkingSet,m_EnterPC < JumpInfo->JumpPC,true);
if (JumpInfo->JumpPC == (DWORD)-1)
if (JumpInfo->ExitReason == CExitInfo::Normal_NoSysCheck)
{
g_Notify->BreakPoint(__FILE__,__LINE__);
}
if (m_EnterPC <= JumpInfo->JumpPC)
{
CPU_Message("CompileSystemCheck 10");
CompileSystemCheck(m_EnterPC,m_RegWorkingSet);
if (JumpInfo->RegSet.GetBlockCycleCount() != 0)
{
g_Notify->BreakPoint(__FILE__,__LINE__);
}
if (JumpInfo->JumpPC != (DWORD)-1)
{
g_Notify->BreakPoint(__FILE__,__LINE__);
}
} else {
UpdateCounters(m_RegWorkingSet,m_EnterPC < JumpInfo->JumpPC,true);
if (JumpInfo->JumpPC == (DWORD)-1)
{
g_Notify->BreakPoint(__FILE__,__LINE__);
}
if (m_EnterPC <= JumpInfo->JumpPC)
{
CPU_Message("CompileSystemCheck 10");
CompileSystemCheck(m_EnterPC,m_RegWorkingSet);
}
}
JumpInfo->FallThrough = false;