SPU LLVM: use volatile stores for PC update
This commit is contained in:
@@ -4873,7 +4873,7 @@ class spu_llvm_recompiler : public spu_recompiler_base, public cpu_translator
|
|||||||
// Update PC for current or explicitly specified instruction address
|
// Update PC for current or explicitly specified instruction address
|
||||||
void update_pc(u32 target = -1)
|
void update_pc(u32 target = -1)
|
||||||
{
|
{
|
||||||
m_ir->CreateStore(m_ir->CreateAnd(get_pc(target + 1 ? target : m_pos), 0x3fffc), spu_ptr<u32>(&spu_thread::pc));
|
m_ir->CreateStore(m_ir->CreateAnd(get_pc(target + 1 ? target : m_pos), 0x3fffc), spu_ptr<u32>(&spu_thread::pc))->setVolatile(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Call cpu_thread::check_state if necessary and return or continue (full check)
|
// Call cpu_thread::check_state if necessary and return or continue (full check)
|
||||||
|
|||||||
Reference in New Issue
Block a user