Message ID | 14bc4664f49e6634e49f454971d8281c69ff0ff2.1714606359.git.balaton@eik.bme.hu (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Misc PPC exception and BookE MMU clean ups | expand |
On Thu May 2, 2024 at 9:43 AM AEST, BALATON Zoltan wrote: > This function is similar to mmubooke_get_physical_address() and can be > simplified the same way. > > Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> > --- > target/ppc/mmu_common.c | 28 ++++++++++------------------ > 1 file changed, 10 insertions(+), 18 deletions(-) > > diff --git a/target/ppc/mmu_common.c b/target/ppc/mmu_common.c > index 760e4072b2..ebf18a751c 100644 > --- a/target/ppc/mmu_common.c > +++ b/target/ppc/mmu_common.c > @@ -872,15 +872,11 @@ static int mmubooke206_get_physical_address(CPUPPCState *env, mmu_ctx_t *ctx, > int mmu_idx) > { > ppcmas_tlb_t *tlb; > - hwaddr raddr; > - int i, j, ret; > - > - ret = -1; > - raddr = (hwaddr)-1ULL; > + hwaddr raddr = (hwaddr)-1ULL; > + int i, j, ways, ret = -1; > > for (i = 0; i < BOOKE206_MAX_TLBN; i++) { > - int ways = booke206_tlb_ways(env, i); Don't need to bring the ways variable into a larger scope I think? Otherwise, Reviewed-by: Nicholas Piggin <npiggin@gmail.com> > - > + ways = booke206_tlb_ways(env, i); > for (j = 0; j < ways; j++) { > tlb = booke206_get_tlbm(env, i, address, j); > if (!tlb) { > @@ -889,6 +885,9 @@ static int mmubooke206_get_physical_address(CPUPPCState *env, mmu_ctx_t *ctx, > ret = mmubooke206_check_tlb(env, tlb, &raddr, &ctx->prot, address, > access_type, mmu_idx); > if (ret != -1) { > + if (ret >= 0) { > + ctx->raddr = raddr; > + } > goto found_tlb; > } > } > @@ -896,17 +895,10 @@ static int mmubooke206_get_physical_address(CPUPPCState *env, mmu_ctx_t *ctx, > > found_tlb: > > - if (ret >= 0) { > - ctx->raddr = raddr; > - qemu_log_mask(CPU_LOG_MMU, "%s: access granted " TARGET_FMT_lx > - " => " HWADDR_FMT_plx " %d %d\n", __func__, address, > - ctx->raddr, ctx->prot, ret); > - } else { > - qemu_log_mask(CPU_LOG_MMU, "%s: access refused " TARGET_FMT_lx > - " => " HWADDR_FMT_plx " %d %d\n", __func__, address, > - raddr, ctx->prot, ret); > - } > - > + qemu_log_mask(CPU_LOG_MMU, "%s: access %s " TARGET_FMT_lx " => " > + HWADDR_FMT_plx " %d %d\n", __func__, > + ret < 0 ? "refused" : "granted", address, raddr, > + ctx->prot, ret); > return ret; > } >
diff --git a/target/ppc/mmu_common.c b/target/ppc/mmu_common.c index 760e4072b2..ebf18a751c 100644 --- a/target/ppc/mmu_common.c +++ b/target/ppc/mmu_common.c @@ -872,15 +872,11 @@ static int mmubooke206_get_physical_address(CPUPPCState *env, mmu_ctx_t *ctx, int mmu_idx) { ppcmas_tlb_t *tlb; - hwaddr raddr; - int i, j, ret; - - ret = -1; - raddr = (hwaddr)-1ULL; + hwaddr raddr = (hwaddr)-1ULL; + int i, j, ways, ret = -1; for (i = 0; i < BOOKE206_MAX_TLBN; i++) { - int ways = booke206_tlb_ways(env, i); - + ways = booke206_tlb_ways(env, i); for (j = 0; j < ways; j++) { tlb = booke206_get_tlbm(env, i, address, j); if (!tlb) { @@ -889,6 +885,9 @@ static int mmubooke206_get_physical_address(CPUPPCState *env, mmu_ctx_t *ctx, ret = mmubooke206_check_tlb(env, tlb, &raddr, &ctx->prot, address, access_type, mmu_idx); if (ret != -1) { + if (ret >= 0) { + ctx->raddr = raddr; + } goto found_tlb; } } @@ -896,17 +895,10 @@ static int mmubooke206_get_physical_address(CPUPPCState *env, mmu_ctx_t *ctx, found_tlb: - if (ret >= 0) { - ctx->raddr = raddr; - qemu_log_mask(CPU_LOG_MMU, "%s: access granted " TARGET_FMT_lx - " => " HWADDR_FMT_plx " %d %d\n", __func__, address, - ctx->raddr, ctx->prot, ret); - } else { - qemu_log_mask(CPU_LOG_MMU, "%s: access refused " TARGET_FMT_lx - " => " HWADDR_FMT_plx " %d %d\n", __func__, address, - raddr, ctx->prot, ret); - } - + qemu_log_mask(CPU_LOG_MMU, "%s: access %s " TARGET_FMT_lx " => " + HWADDR_FMT_plx " %d %d\n", __func__, + ret < 0 ? "refused" : "granted", address, raddr, + ctx->prot, ret); return ret; }
This function is similar to mmubooke_get_physical_address() and can be simplified the same way. Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> --- target/ppc/mmu_common.c | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-)