mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-04 22:19:02 +00:00
SPU LLVM: Avoid notifications in cellSync SPU functions
Identify them using their unique error codes.
This commit is contained in:
parent
f9345c7699
commit
71dd22a55d
4 changed files with 33 additions and 1 deletions
|
|
@ -1122,6 +1122,7 @@ class spu_llvm_recompiler : public spu_recompiler_base, public cpu_translator
|
|||
u32 data;
|
||||
bf_t<u32, 30, 2> type;
|
||||
bf_t<u32, 29, 1> runtime16_select;
|
||||
bf_t<u32, 28, 1> no_notify;
|
||||
bf_t<u32, 18, 8> reg;
|
||||
bf_t<u32, 0, 18> off18;
|
||||
bf_t<u32, 0, 8> reg2;
|
||||
|
|
@ -1244,7 +1245,12 @@ class spu_llvm_recompiler : public spu_recompiler_base, public cpu_translator
|
|||
// Unlock and notify
|
||||
m_ir->SetInsertPoint(_success_and_unlock);
|
||||
m_ir->CreateAlignedStore(m_ir->CreateAdd(rval, m_ir->getInt64(128)), rptr, llvm::MaybeAlign{8});
|
||||
call("atomic_wait_engine::notify_all", static_cast<void(*)(const void*)>(atomic_wait_engine::notify_all), rptr);
|
||||
|
||||
if (!info.no_notify)
|
||||
{
|
||||
call("atomic_wait_engine::notify_all", static_cast<void(*)(const void*)>(atomic_wait_engine::notify_all), rptr);
|
||||
}
|
||||
|
||||
m_ir->CreateBr(_success);
|
||||
|
||||
// Perform unlocked vm::reservation_update if no physical memory changes needed
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue