mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-20 11:36:13 +00:00
SPU: Don't break blocks on DSYNC instruction in Safe mode (#6731)
This commit is contained in:
parent
8234bdb8f0
commit
a21d7def33
2 changed files with 3 additions and 3 deletions
|
@ -1459,7 +1459,7 @@ void spu_recompiler::SYNC(spu_opcode_t op)
|
|||
void spu_recompiler::DSYNC(spu_opcode_t op)
|
||||
{
|
||||
// This instruction forces all earlier load, store, and channel instructions to complete before proceeding.
|
||||
SYNC(op);
|
||||
c->mfence();
|
||||
}
|
||||
|
||||
void spu_recompiler::MFSPR(spu_opcode_t op)
|
||||
|
|
|
@ -1332,7 +1332,6 @@ std::vector<u32> spu_recompiler_base::analyse(const be_t<u32>* ls, u32 entry_poi
|
|||
}
|
||||
|
||||
case spu_itype::SYNC:
|
||||
case spu_itype::DSYNC:
|
||||
case spu_itype::STOP:
|
||||
case spu_itype::STOPD:
|
||||
{
|
||||
|
@ -1696,6 +1695,7 @@ std::vector<u32> spu_recompiler_base::analyse(const be_t<u32>* ls, u32 entry_poi
|
|||
break;
|
||||
}
|
||||
|
||||
case spu_itype::DSYNC:
|
||||
case spu_itype::HEQ:
|
||||
case spu_itype::HEQI:
|
||||
case spu_itype::HGT:
|
||||
|
@ -6086,7 +6086,7 @@ public:
|
|||
void DSYNC(spu_opcode_t op) //
|
||||
{
|
||||
// This instruction forces all earlier load, store, and channel instructions to complete before proceeding.
|
||||
SYNC(op);
|
||||
m_ir->CreateFence(llvm::AtomicOrdering::SequentiallyConsistent);
|
||||
}
|
||||
|
||||
void MFSPR(spu_opcode_t op) //
|
||||
|
|
Loading…
Add table
Reference in a new issue