diff --git a/rpcs3/Emu/Cell/SPULLVMRecompiler.cpp b/rpcs3/Emu/Cell/SPULLVMRecompiler.cpp index b0c2c9854d..6b3841280e 100644 --- a/rpcs3/Emu/Cell/SPULLVMRecompiler.cpp +++ b/rpcs3/Emu/Cell/SPULLVMRecompiler.cpp @@ -2981,6 +2981,11 @@ public: condition = m_ir->CreateAnd(cond_verify, condition); } } + else + { + // Check spu_thread::state + condition = m_ir->CreateAnd(m_ir->CreateICmpEQ(spu_context_attr(m_ir->CreateLoad(get_type(), spu_ptr(&spu_thread::state), true)), m_ir->getInt32(0)), condition); + } m_ir->CreateCondBr(condition, optimization_block, block_optimization_next); };