From f801dc65585056dab67bd477662ba4b7f4e1e0d9 Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Tue, 16 Mar 2021 16:41:32 +0300 Subject: [PATCH] Save all 8 syscall_args --- rpcs3/Emu/Cell/PPUThread.cpp | 4 ++-- rpcs3/Emu/Cell/PPUThread.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rpcs3/Emu/Cell/PPUThread.cpp b/rpcs3/Emu/Cell/PPUThread.cpp index 89ad6ba62b..13f12fca7f 100644 --- a/rpcs3/Emu/Cell/PPUThread.cpp +++ b/rpcs3/Emu/Cell/PPUThread.cpp @@ -608,7 +608,7 @@ std::string ppu_thread::dump_regs() const auto reg = gpr[i]; // Fixup for syscall arguments - if (current_function && i >= 3 && i <= 6) reg = syscall_args[i - 3]; + if (current_function && i >= 3 && i <= 10) reg = syscall_args[i - 3]; fmt::append(ret, "r%d%s: 0x%-8llx", i, i <= 9 ? " " : "", reg); @@ -836,7 +836,7 @@ std::string ppu_thread::dump_misc() const ret += _func; ret += '\n'; - for (u32 i = 3; i <= 6; i++) + for (u32 i = 3; i <= 10; i++) if (u64 v = gpr[i]; v != syscall_args[i - 3]) fmt::append(ret, " ** r%d: 0x%llx\n", i, v); } diff --git a/rpcs3/Emu/Cell/PPUThread.h b/rpcs3/Emu/Cell/PPUThread.h index b2d806d6a6..a2db5eb551 100644 --- a/rpcs3/Emu/Cell/PPUThread.h +++ b/rpcs3/Emu/Cell/PPUThread.h @@ -260,9 +260,9 @@ public: cmd64 cmd_get(u32 index) { return cmd_queue[cmd_queue.peek() + index].load(); } atomic_t cmd_notify = 0; - const ppu_func_opd_t entry_func; + alignas(64) const ppu_func_opd_t entry_func; u64 start_time{0}; // Sleep start timepoint - alignas(64) u64 syscall_args[4]{0}; // Last syscall arguments stored + u64 syscall_args[8]{0}; // Last syscall arguments stored const char* current_function{}; // Current function name for diagnosis, optimized for speed. const char* last_function{}; // Sticky copy of current_function, is not cleared on function return