From e7df81ade0f930cb6f729f0d26984a03750bf534 Mon Sep 17 00:00:00 2001 From: Vincent Lejeune Date: Tue, 22 Dec 2015 18:12:51 +0100 Subject: [PATCH] PPU/LLVM: Call fast_stop when function returns and PC corresponds --- rpcs3/Emu/Cell/PPULLVMRecompiler.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rpcs3/Emu/Cell/PPULLVMRecompiler.cpp b/rpcs3/Emu/Cell/PPULLVMRecompiler.cpp index fc7f80026b..9b65fd25a7 100644 --- a/rpcs3/Emu/Cell/PPULLVMRecompiler.cpp +++ b/rpcs3/Emu/Cell/PPULLVMRecompiler.cpp @@ -591,7 +591,10 @@ u32 ppu_recompiler_llvm::CPUHybridDecoderRecompiler::ExecuteTillReturn(PPUThread auto entry = ppu_state->PC; u32 exit = (u32)executable(ppu_state, 0); if (exit == ExecutionStatus::ExecutionStatusReturn) + { + if (Emu.GetCPUThreadStop() == ppu_state->PC) ppu_state->fast_stop(); return ExecutionStatus::ExecutionStatusReturn; + } if (exit == ExecutionStatus::ExecutionStatusPropagateException) return ExecutionStatus::ExecutionStatusPropagateException; previousInstContigousAndInterp = false;