From 368bd7cf020e1a650499aece3cba88dab887336d Mon Sep 17 00:00:00 2001 From: Eladash Date: Thu, 16 Apr 2020 21:35:11 +0300 Subject: [PATCH] PPU debugger: read 32-bit pointer instead of 64-bit PPU ABI supports only 32-bit pointers in userland, also fix it to use super ptr. --- rpcs3/Emu/Cell/PPUThread.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/rpcs3/Emu/Cell/PPUThread.cpp b/rpcs3/Emu/Cell/PPUThread.cpp index 269bc7cd5e..a971bede8f 100644 --- a/rpcs3/Emu/Cell/PPUThread.cpp +++ b/rpcs3/Emu/Cell/PPUThread.cpp @@ -381,11 +381,10 @@ std::string ppu_thread::dump_regs() const const u32 max_str_len = 32; const u32 hex_count = 8; - if (reg <= UINT32_MAX && vm::check_addr(static_cast(reg), max_str_len, vm::page_readable)) + if (reg <= UINT32_MAX && vm::check_addr(static_cast(reg), max_str_len)) { - const u64 reg_ptr = vm::read64(reg); - - if (reg_ptr <= UINT32_MAX && vm::check_addr(static_cast(reg_ptr), max_str_len, vm::page_readable)) + if (const u32 reg_ptr = *vm::get_super_ptr(static_cast(reg)); + vm::check_addr(reg_ptr, max_str_len)) { reg = reg_ptr; }