mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-20 03:25:16 +00:00
SPU LLVM: fix savestate safety guards
Volatile was removed since it prevented optimizations.
This commit is contained in:
parent
22bd7dcc42
commit
3473e19508
1 changed files with 7 additions and 7 deletions
|
@ -4891,12 +4891,7 @@ class spu_llvm_recompiler : public spu_recompiler_base, public cpu_translator
|
|||
may_be_unsafe_for_savestate = false;
|
||||
}
|
||||
|
||||
if (may_be_unsafe_for_savestate)
|
||||
{
|
||||
m_ir->CreateStore(m_ir->getInt8(1), spu_ptr<u8>(&spu_thread::unsavable));
|
||||
}
|
||||
|
||||
m_ir->CreateStore(m_ir->getFalse(), m_fake_global1);
|
||||
m_ir->CreateStore(m_ir->getInt1(may_be_unsafe_for_savestate), m_fake_global1);
|
||||
|
||||
if (may_be_unsafe_for_savestate)
|
||||
{
|
||||
|
@ -5540,8 +5535,13 @@ public:
|
|||
{
|
||||
m_ir->SetInsertPoint(si);
|
||||
|
||||
if (si->getOperand(0) == m_ir->getTrue())
|
||||
{
|
||||
m_ir->CreateStore(m_ir->getInt8(1), _ptr<u8>(f->getArg(0), ::offset32(&spu_thread::unsavable)));
|
||||
}
|
||||
|
||||
CallInst* ci{};
|
||||
if (si->getOperand(0) == m_ir->getFalse())
|
||||
if (si->getOperand(0) == m_ir->getTrue() || si->getOperand(0) == m_ir->getFalse())
|
||||
{
|
||||
ci = m_ir->CreateCall(m_test_state, {f->getArg(0)});
|
||||
ci->setCallingConv(m_test_state->getCallingConv());
|
||||
|
|
Loading…
Add table
Reference in a new issue