diff --git a/rpcs3/Emu/CPU/CPUThread.cpp b/rpcs3/Emu/CPU/CPUThread.cpp index 037619ec06..1c142110fc 100644 --- a/rpcs3/Emu/CPU/CPUThread.cpp +++ b/rpcs3/Emu/CPU/CPUThread.cpp @@ -34,6 +34,7 @@ void fmt_class_string::format(std::string& out, u64 arg) case cpu_flag::stop: return "STOP"; case cpu_flag::exit: return "EXIT"; case cpu_flag::wait: return "w"; + case cpu_flag::temp: return "t"; case cpu_flag::pause: return "p"; case cpu_flag::suspend: return "s"; case cpu_flag::ret: return "ret"; @@ -589,7 +590,7 @@ bool cpu_thread::check_state() noexcept store = true; } - retval = !cpu_can_stop; + retval = false; } else { @@ -599,7 +600,7 @@ bool cpu_thread::check_state() noexcept store = true; } - retval = true; + retval = cpu_can_stop; } if (cpu_can_stop && flags & cpu_flag::dbg_step) diff --git a/rpcs3/Emu/Cell/PPUThread.cpp b/rpcs3/Emu/Cell/PPUThread.cpp index 82fa302635..51d759f02b 100644 --- a/rpcs3/Emu/Cell/PPUThread.cpp +++ b/rpcs3/Emu/Cell/PPUThread.cpp @@ -1221,7 +1221,7 @@ static T ppu_load_acquire_reservation(ppu_thread& ppu, u32 addr) { ppu.state += cpu_flag::wait + cpu_flag::temp; std::this_thread::yield(); - ppu.check_state(); + verify(HERE), !ppu.check_state(); } }()) { diff --git a/rpcs3/Emu/Cell/SPUThread.cpp b/rpcs3/Emu/Cell/SPUThread.cpp index 304e3c4d97..5a19e7d812 100644 --- a/rpcs3/Emu/Cell/SPUThread.cpp +++ b/rpcs3/Emu/Cell/SPUThread.cpp @@ -271,7 +271,7 @@ namespace spu busy_wait(count); } - spu.check_state(); + verify(HERE), !spu.check_state(); } atomic_instruction_table[pc_offset]++;