diff --git a/Source/Project64-core/N64System/Recompiler/x86/x86RecompilerOps.cpp b/Source/Project64-core/N64System/Recompiler/x86/x86RecompilerOps.cpp index de6bcbc8b..a67e99a1d 100644 --- a/Source/Project64-core/N64System/Recompiler/x86/x86RecompilerOps.cpp +++ b/Source/Project64-core/N64System/Recompiler/x86/x86RecompilerOps.cpp @@ -4639,14 +4639,20 @@ void CX86RecompilerOps::SPECIAL_SYSCALL() { m_RegWorkingSet.SetBlockCycleCount(m_RegWorkingSet.GetBlockCycleCount() + g_System->CountPerOp()); CompileExit(m_CompilePC, m_CompilePC, m_RegWorkingSet, ExitReason_DoSysCall, true, nullptr); - m_PipelineStage = PIPELINE_STAGE_END_BLOCK; + if (m_PipelineStage == PIPELINE_STAGE_NORMAL) + { + m_PipelineStage = PIPELINE_STAGE_END_BLOCK; + } } void CX86RecompilerOps::SPECIAL_BREAK() { m_RegWorkingSet.SetBlockCycleCount(m_RegWorkingSet.GetBlockCycleCount() + g_System->CountPerOp()); CompileExit(m_CompilePC, m_CompilePC, m_RegWorkingSet, ExitReason_Break, true, nullptr); - m_PipelineStage = PIPELINE_STAGE_END_BLOCK; + if (m_PipelineStage == PIPELINE_STAGE_NORMAL) + { + m_PipelineStage = PIPELINE_STAGE_END_BLOCK; + } } void CX86RecompilerOps::SPECIAL_SYNC()