From 85880ffded1b5aae67594c58504ad496e292c3ff Mon Sep 17 00:00:00 2001 From: Eladash Date: Fri, 20 Nov 2020 12:53:16 +0200 Subject: [PATCH] SPU: Log STOP full opcode (#9292) Co-authored-by: Ani --- rpcs3/Emu/Cell/SPUThread.cpp | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/rpcs3/Emu/Cell/SPUThread.cpp b/rpcs3/Emu/Cell/SPUThread.cpp index c9c1cc0418..0963e54b66 100644 --- a/rpcs3/Emu/Cell/SPUThread.cpp +++ b/rpcs3/Emu/Cell/SPUThread.cpp @@ -3884,14 +3884,7 @@ bool spu_thread::set_ch_value(u32 ch, u32 value) } else { - if (ch_out_mbox.get_count()) - { - fmt::throw_exception("SPU_WrOutIntrMbox: unknown data (value=0x%x); Out_MBox = 0x%x" HERE, value, ch_out_mbox.get_value()); - } - else - { - fmt::throw_exception("SPU_WrOutIntrMbox: unknown data (value=0x%x)" HERE, value); - } + fmt::throw_exception("SPU_WrOutIntrMbox: unknown data (value=0x%x, Out_MBox=%s)" HERE, value, ch_out_mbox); } } } @@ -4467,12 +4460,13 @@ bool spu_thread::stop_and_signal(u32 code) state += cpu_flag::wait; - if (!ch_out_mbox.get_count()) + u32 value; + + if (!ch_out_mbox.try_pop(value)) { fmt::throw_exception("sys_spu_thread_exit(): Out_MBox is empty" HERE); } - const u32 value = ch_out_mbox.get_value(); spu_log.trace("sys_spu_thread_exit(status=0x%x)", value); last_exit_status.release(value); set_status_npc(); @@ -4482,7 +4476,7 @@ bool spu_thread::stop_and_signal(u32 code) } } - fmt::throw_exception("Unknown STOP code: 0x%x (Out_MBox=%s)" HERE, code, ch_out_mbox); + fmt::throw_exception("Unknown STOP code: 0x%x (op=0x%x, Out_MBox=%s)" HERE, code, _ref(pc), ch_out_mbox); } void spu_thread::halt()