SPU/PPU reservations: Optimizations for reservation locks and check_state() (non-TSX)

This commit is contained in:
Eladash 2020-06-05 12:36:28 +03:00 committed by Ani
parent e09c4b72c8
commit d9750e8f9f
20 changed files with 251 additions and 252 deletions

View file

@ -13,7 +13,7 @@ template<> DECLARE(ipc_manager<lv2_cond, u64>::g_ipc) {};
error_code sys_cond_create(ppu_thread& ppu, vm::ptr<u32> cond_id, u32 mutex_id, vm::ptr<sys_cond_attribute_t> attr)
{
vm::temporary_unlock(ppu);
ppu.state += cpu_flag::wait;
sys_cond.warning("sys_cond_create(cond_id=*0x%x, mutex_id=0x%x, attr=*0x%x)", cond_id, mutex_id, attr);
@ -46,7 +46,7 @@ error_code sys_cond_create(ppu_thread& ppu, vm::ptr<u32> cond_id, u32 mutex_id,
error_code sys_cond_destroy(ppu_thread& ppu, u32 cond_id)
{
vm::temporary_unlock(ppu);
ppu.state += cpu_flag::wait;
sys_cond.warning("sys_cond_destroy(cond_id=0x%x)", cond_id);
@ -78,7 +78,7 @@ error_code sys_cond_destroy(ppu_thread& ppu, u32 cond_id)
error_code sys_cond_signal(ppu_thread& ppu, u32 cond_id)
{
vm::temporary_unlock(ppu);
ppu.state += cpu_flag::wait;
sys_cond.trace("sys_cond_signal(cond_id=0x%x)", cond_id);
@ -111,7 +111,7 @@ error_code sys_cond_signal(ppu_thread& ppu, u32 cond_id)
error_code sys_cond_signal_all(ppu_thread& ppu, u32 cond_id)
{
vm::temporary_unlock(ppu);
ppu.state += cpu_flag::wait;
sys_cond.trace("sys_cond_signal_all(cond_id=0x%x)", cond_id);
@ -149,7 +149,7 @@ error_code sys_cond_signal_all(ppu_thread& ppu, u32 cond_id)
error_code sys_cond_signal_to(ppu_thread& ppu, u32 cond_id, u32 thread_id)
{
vm::temporary_unlock(ppu);
ppu.state += cpu_flag::wait;
sys_cond.trace("sys_cond_signal_to(cond_id=0x%x, thread_id=0x%x)", cond_id, thread_id);
@ -201,7 +201,7 @@ error_code sys_cond_signal_to(ppu_thread& ppu, u32 cond_id, u32 thread_id)
error_code sys_cond_wait(ppu_thread& ppu, u32 cond_id, u64 timeout)
{
vm::temporary_unlock(ppu);
ppu.state += cpu_flag::wait;
sys_cond.trace("sys_cond_wait(cond_id=0x%x, timeout=%lld)", cond_id, timeout);