From 500f38a496ec59315aa4970b0bb0f6fc9e0168cd Mon Sep 17 00:00:00 2001 From: joevt Date: Tue, 8 Aug 2023 22:05:21 -0700 Subject: [PATCH] ppcmmu: Add phys address to mmu_translate_imem. For debugging. --- cpu/ppc/ppcmmu.cpp | 4 +++- cpu/ppc/ppcmmu.h | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cpu/ppc/ppcmmu.cpp b/cpu/ppc/ppcmmu.cpp index 9f81da9..54bd03a 100644 --- a/cpu/ppc/ppcmmu.cpp +++ b/cpu/ppc/ppcmmu.cpp @@ -682,7 +682,7 @@ static inline TLBEntry* lookup_secondary_tlb(uint32_t guest_va, uint32_t tag) { return tlb_entry; } -uint8_t *mmu_translate_imem(uint32_t vaddr) +uint8_t *mmu_translate_imem(uint32_t vaddr, uint32_t *paddr) { TLBEntry *tlb1_entry, *tlb2_entry; uint8_t *host_va; @@ -725,6 +725,8 @@ uint8_t *mmu_translate_imem(uint32_t vaddr) } ppc_set_cur_instruction(host_va); + if (paddr) + *paddr = tlb1_entry->phys_tag | (vaddr & 0xFFFUL); return host_va; } diff --git a/cpu/ppc/ppcmmu.h b/cpu/ppc/ppcmmu.h index 39bd4f3..2f05a37 100644 --- a/cpu/ppc/ppcmmu.h +++ b/cpu/ppc/ppcmmu.h @@ -126,7 +126,7 @@ extern void mmu_pat_ctx_changed(); extern void tlb_flush_entry(uint32_t ea); extern uint64_t mem_read_dbg(uint32_t virt_addr, uint32_t size); -uint8_t *mmu_translate_imem(uint32_t vaddr); +uint8_t *mmu_translate_imem(uint32_t vaddr, uint32_t *paddr = nullptr); template extern T mmu_read_vmem(uint32_t guest_va);