Core: Update when branch goes to the opcode after the delay slot
This commit is contained in:
parent
8a01017ef5
commit
c380571d8b
|
@ -620,6 +620,13 @@ void CX86RecompilerOps::Compile_Branch(RecompilerBranchCompare CompareType, bool
|
||||||
}
|
}
|
||||||
else if (m_PipelineStage == PIPELINE_STAGE_DELAY_SLOT_DONE)
|
else if (m_PipelineStage == PIPELINE_STAGE_DELAY_SLOT_DONE)
|
||||||
{
|
{
|
||||||
|
if (m_CompilePC + ((int16_t)m_Opcode.offset << 2) + 4 == m_CompilePC + 8)
|
||||||
|
{
|
||||||
|
m_PipelineStage = PIPELINE_STAGE_NORMAL;
|
||||||
|
m_RegWorkingSet.SetBlockCycleCount(m_RegWorkingSet.GetBlockCycleCount() - g_System->CountPerOp());
|
||||||
|
SetCurrentPC(GetCurrentPC() + 4);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (m_EffectDelaySlot)
|
if (m_EffectDelaySlot)
|
||||||
{
|
{
|
||||||
CJumpInfo * FallInfo = m_Section->m_Jump.FallThrough ? &m_Section->m_Jump : &m_Section->m_Cont;
|
CJumpInfo * FallInfo = m_Section->m_Jump.FallThrough ? &m_Section->m_Jump : &m_Section->m_Cont;
|
||||||
|
|
Loading…
Reference in New Issue