[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 47/72] target/ppc/mmu_common.c: Move some debug logging
From: |
Nicholas Piggin |
Subject: |
[PULL 47/72] target/ppc/mmu_common.c: Move some debug logging |
Date: |
Fri, 24 May 2024 09:07:20 +1000 |
From: BALATON Zoltan <balaton@eik.bme.hu>
Move the debug logging within ppc6xx_tlb_check() from after its only
call to simplify the caller.
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
target/ppc/mmu_common.c | 54 ++++++++++++++++++-----------------------
1 file changed, 24 insertions(+), 30 deletions(-)
diff --git a/target/ppc/mmu_common.c b/target/ppc/mmu_common.c
index ba60b4902b..89bfd9aa45 100644
--- a/target/ppc/mmu_common.c
+++ b/target/ppc/mmu_common.c
@@ -225,17 +225,14 @@ static int ppc6xx_tlb_check(CPUPPCState *env, mmu_ctx_t
*ctx,
access_type == MMU_INST_FETCH ? 'I' : 'D');
switch (ppc6xx_tlb_pte_check(ctx, tlb->pte0, tlb->pte1,
0, access_type)) {
- case -3:
- /* TLB inconsistency */
- return -1;
case -2:
/* Access violation */
ret = -2;
best = nr;
break;
- case -1:
+ case -1: /* No match */
+ case -3: /* TLB inconsistency */
default:
- /* No match */
break;
case 0:
/* access granted */
@@ -251,14 +248,34 @@ static int ppc6xx_tlb_check(CPUPPCState *env, mmu_ctx_t
*ctx,
}
}
if (best != -1) {
- done:
+done:
qemu_log_mask(CPU_LOG_MMU, "found TLB at addr " HWADDR_FMT_plx
" prot=%01x ret=%d\n",
ctx->raddr & TARGET_PAGE_MASK, ctx->prot, ret);
/* Update page flags */
pte_update_flags(ctx, &env->tlb.tlb6[best].pte1, ret, access_type);
}
-
+#if defined(DUMP_PAGE_TABLES)
+ if (qemu_loglevel_mask(CPU_LOG_MMU)) {
+ CPUState *cs = env_cpu(env);
+ hwaddr base = ppc_hash32_hpt_base(env_archcpu(env));
+ hwaddr len = ppc_hash32_hpt_mask(env_archcpu(env)) + 0x80;
+ uint32_t a0, a1, a2, a3;
+
+ qemu_log("Page table: " HWADDR_FMT_plx " len " HWADDR_FMT_plx "\n",
+ base, len);
+ for (hwaddr curaddr = base; curaddr < base + len; curaddr += 16) {
+ a0 = ldl_phys(cs->as, curaddr);
+ a1 = ldl_phys(cs->as, curaddr + 4);
+ a2 = ldl_phys(cs->as, curaddr + 8);
+ a3 = ldl_phys(cs->as, curaddr + 12);
+ if (a0 != 0 || a1 != 0 || a2 != 0 || a3 != 0) {
+ qemu_log(HWADDR_FMT_plx ": %08x %08x %08x %08x\n",
+ curaddr, a0, a1, a2, a3);
+ }
+ }
+ }
+#endif
return ret;
}
@@ -420,29 +437,6 @@ static int mmu6xx_get_physical_address(CPUPPCState *env,
mmu_ctx_t *ctx,
ctx->raddr = (hwaddr)-1ULL;
/* Software TLB search */
ret = ppc6xx_tlb_check(env, ctx, eaddr, access_type);
-#if defined(DUMP_PAGE_TABLES)
- if (qemu_loglevel_mask(CPU_LOG_MMU)) {
- CPUState *cs = env_cpu(env);
- hwaddr curaddr;
- uint32_t a0, a1, a2, a3;
-
- qemu_log("Page table: " HWADDR_FMT_plx " len " HWADDR_FMT_plx "\n",
- ppc_hash32_hpt_base(cpu), ppc_hash32_hpt_mask(cpu) +
0x80);
- for (curaddr = ppc_hash32_hpt_base(cpu);
- curaddr < (ppc_hash32_hpt_base(cpu)
- + ppc_hash32_hpt_mask(cpu) + 0x80);
- curaddr += 16) {
- a0 = ldl_phys(cs->as, curaddr);
- a1 = ldl_phys(cs->as, curaddr + 4);
- a2 = ldl_phys(cs->as, curaddr + 8);
- a3 = ldl_phys(cs->as, curaddr + 12);
- if (a0 != 0 || a1 != 0 || a2 != 0 || a3 != 0) {
- qemu_log(HWADDR_FMT_plx ": %08x %08x %08x %08x\n",
- curaddr, a0, a1, a2, a3);
- }
- }
- }
-#endif
} else {
qemu_log_mask(CPU_LOG_MMU, "direct store...\n");
/* Direct-store segment : absolutely *BUGGY* for now */
--
2.43.0
- [PULL 38/72] target/ppc: add SMT support to msgsnd broadcast, (continued)
- [PULL 38/72] target/ppc: add SMT support to msgsnd broadcast, Nicholas Piggin, 2024/05/23
- [PULL 39/72] target/ppc: Remove unused struct 'mmu_ctx_hash32', Nicholas Piggin, 2024/05/23
- [PULL 40/72] target/ppc: Remove unused helper, Nicholas Piggin, 2024/05/23
- [PULL 48/72] target/ppc/mmu_common.c: Eliminate ret from mmu6xx_get_physical_address(), Nicholas Piggin, 2024/05/23
- [PULL 41/72] target/ppc/mmu_common.c: Move calculation of a value closer to its usage, Nicholas Piggin, 2024/05/23
- [PULL 44/72] target/ppc/mmu_common.c: Drop cases for unimplemented MPC8xx MMU, Nicholas Piggin, 2024/05/23
- [PULL 45/72] target/ppc/mmu_common.c: Introduce mmu6xx_get_physical_address(), Nicholas Piggin, 2024/05/23
- [PULL 43/72] target/ppc/mmu_common.c: Simplify checking for real mode, Nicholas Piggin, 2024/05/23
- [PULL 51/72] target/ppc/mmu_common.c: Inline and remove check_physical(), Nicholas Piggin, 2024/05/23
- [PULL 46/72] target/ppc/mmu_common.c: Move else branch to avoid large if block, Nicholas Piggin, 2024/05/23
- [PULL 47/72] target/ppc/mmu_common.c: Move some debug logging,
Nicholas Piggin <=
- [PULL 49/72] target/ppc/mmu_common.c: Split out BookE cases before checking real mode, Nicholas Piggin, 2024/05/23
- [PULL 50/72] target/ppc/mmu_common.c: Split off real mode cases in get_physical_address_wtlb(), Nicholas Piggin, 2024/05/23
- [PULL 53/72] target/ppc/mmu_common.c: Deindent ppc_jumbo_xlate(), Nicholas Piggin, 2024/05/23
- [PULL 52/72] target/ppc/mmu_common.c: Fix misindented qemu_log_mask() calls, Nicholas Piggin, 2024/05/23
- [PULL 56/72] target/ppc/mmu_common.c: Don't use mmu_ctx_t in mmubooke_get_physical_address(), Nicholas Piggin, 2024/05/23
- [PULL 55/72] target/ppc/mmu_common.c: Don't use mmu_ctx_t for mmu40x_get_physical_address(), Nicholas Piggin, 2024/05/23
- [PULL 54/72] target/ppc/mmu_common.c: Replace hard coded constants in ppc_jumbo_xlate(), Nicholas Piggin, 2024/05/23
- [PULL 59/72] target/ppc/mmu_common.c: Split off BookE handling from ppc_jumbo_xlate(), Nicholas Piggin, 2024/05/23
- [PULL 57/72] target/ppc/mmu_common.c: Don't use mmu_ctx_t in mmubooke206_get_physical_address(), Nicholas Piggin, 2024/05/23
- [PULL 58/72] target/ppc/mmu_common.c: Remove BookE from direct store handling, Nicholas Piggin, 2024/05/23