target/ppc: Move some debug logging in ppc6xx_tlb_check()
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>
This commit is contained in:
parent
f1418bdeb0
commit
0af20f35d2
@ -225,17 +225,14 @@ static int ppc6xx_tlb_check(CPUPPCState *env, mmu_ctx_t *ctx,
|
|||||||
access_type == MMU_INST_FETCH ? 'I' : 'D');
|
access_type == MMU_INST_FETCH ? 'I' : 'D');
|
||||||
switch (ppc6xx_tlb_pte_check(ctx, tlb->pte0, tlb->pte1,
|
switch (ppc6xx_tlb_pte_check(ctx, tlb->pte0, tlb->pte1,
|
||||||
0, access_type)) {
|
0, access_type)) {
|
||||||
case -3:
|
|
||||||
/* TLB inconsistency */
|
|
||||||
return -1;
|
|
||||||
case -2:
|
case -2:
|
||||||
/* Access violation */
|
/* Access violation */
|
||||||
ret = -2;
|
ret = -2;
|
||||||
best = nr;
|
best = nr;
|
||||||
break;
|
break;
|
||||||
case -1:
|
case -1: /* No match */
|
||||||
|
case -3: /* TLB inconsistency */
|
||||||
default:
|
default:
|
||||||
/* No match */
|
|
||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
/* access granted */
|
/* access granted */
|
||||||
@ -258,7 +255,27 @@ static int ppc6xx_tlb_check(CPUPPCState *env, mmu_ctx_t *ctx,
|
|||||||
/* Update page flags */
|
/* Update page flags */
|
||||||
pte_update_flags(ctx, &env->tlb.tlb6[best].pte1, ret, access_type);
|
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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -420,29 +437,6 @@ static int mmu6xx_get_physical_address(CPUPPCState *env, mmu_ctx_t *ctx,
|
|||||||
ctx->raddr = (hwaddr)-1ULL;
|
ctx->raddr = (hwaddr)-1ULL;
|
||||||
/* Software TLB search */
|
/* Software TLB search */
|
||||||
ret = ppc6xx_tlb_check(env, ctx, eaddr, access_type);
|
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 {
|
} else {
|
||||||
qemu_log_mask(CPU_LOG_MMU, "direct store...\n");
|
qemu_log_mask(CPU_LOG_MMU, "direct store...\n");
|
||||||
/* Direct-store segment : absolutely *BUGGY* for now */
|
/* Direct-store segment : absolutely *BUGGY* for now */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user