On Mon May 13, 2024 at 9:27 AM AEST, BALATON Zoltan wrote: > Now that only 6xx cases left in ppc_jumbo_xlate() we can change it > to ppc_6xx_xlate() also removing get_physical_address_wtlb(). >
Reviewed-by: Nicholas Piggin <npig...@gmail.com> > Signed-off-by: BALATON Zoltan <bala...@eik.bme.hu> > --- > target/ppc/internal.h | 5 +---- > target/ppc/mmu_common.c | 38 ++++++++++++-------------------------- > 2 files changed, 13 insertions(+), 30 deletions(-) > > diff --git a/target/ppc/internal.h b/target/ppc/internal.h > index 98b41a970c..4a4f9b9ec8 100644 > --- a/target/ppc/internal.h > +++ b/target/ppc/internal.h > @@ -262,10 +262,7 @@ typedef struct mmu_ctx_t mmu_ctx_t; > bool ppc_xlate(PowerPCCPU *cpu, vaddr eaddr, MMUAccessType access_type, > hwaddr *raddrp, int *psizep, int *protp, > int mmu_idx, bool guest_visible); > -int get_physical_address_wtlb(CPUPPCState *env, mmu_ctx_t *ctx, > - target_ulong eaddr, > - MMUAccessType access_type, int type, > - int mmu_idx); > + > /* Software driven TLB helpers */ > int ppc6xx_tlb_getnum(CPUPPCState *env, target_ulong eaddr, > int way, int is_code); > diff --git a/target/ppc/mmu_common.c b/target/ppc/mmu_common.c > index ddb014e0aa..961062bca1 100644 > --- a/target/ppc/mmu_common.c > +++ b/target/ppc/mmu_common.c > @@ -1112,22 +1112,6 @@ void dump_mmu(CPUPPCState *env) > } > } > > -int get_physical_address_wtlb(CPUPPCState *env, mmu_ctx_t *ctx, > - target_ulong eaddr, > - MMUAccessType access_type, int type, > - int mmu_idx) > -{ > - switch (env->mmu_model) { > - case POWERPC_MMU_SOFT_6xx: > - return mmu6xx_get_physical_address(env, ctx, eaddr, access_type, > type); > - case POWERPC_MMU_SOFT_4xx: > - return mmu40x_get_physical_address(env, &ctx->raddr, &ctx->prot, > eaddr, > - access_type); > - default: > - cpu_abort(env_cpu(env), "Unknown or invalid MMU model\n"); > - } > -} > - > static void booke206_update_mas_tlb_miss(CPUPPCState *env, target_ulong > address, > MMUAccessType access_type, int > mmu_idx) > { > @@ -1326,12 +1310,10 @@ static bool ppc_40x_xlate(PowerPCCPU *cpu, vaddr > eaddr, > return false; > } > > -/* Perform address translation */ > -/* TODO: Split this by mmu_model. */ > -static bool ppc_jumbo_xlate(PowerPCCPU *cpu, vaddr eaddr, > - MMUAccessType access_type, > - hwaddr *raddrp, int *psizep, int *protp, > - int mmu_idx, bool guest_visible) > +static bool ppc_6xx_xlate(PowerPCCPU *cpu, vaddr eaddr, > + MMUAccessType access_type, > + hwaddr *raddrp, int *psizep, int *protp, > + int mmu_idx, bool guest_visible) > { > CPUState *cs = CPU(cpu); > CPUPPCState *env = &cpu->env; > @@ -1353,8 +1335,10 @@ static bool ppc_jumbo_xlate(PowerPCCPU *cpu, vaddr > eaddr, > type = ACCESS_INT; > } > > - ret = get_physical_address_wtlb(env, &ctx, eaddr, access_type, > - type, mmu_idx); > + ctx.prot = 0; > + ctx.hash[0] = 0; > + ctx.hash[1] = 0; > + ret = mmu6xx_get_physical_address(env, &ctx, eaddr, access_type, type); > if (ret == 0) { > *raddrp = ctx.raddr; > *protp = ctx.prot; > @@ -1498,14 +1482,16 @@ bool ppc_xlate(PowerPCCPU *cpu, vaddr eaddr, > MMUAccessType access_type, > case POWERPC_MMU_SOFT_4xx: > return ppc_40x_xlate(cpu, eaddr, access_type, raddrp, > psizep, protp, mmu_idx, guest_visible); > + case POWERPC_MMU_SOFT_6xx: > + return ppc_6xx_xlate(cpu, eaddr, access_type, raddrp, > + psizep, protp, mmu_idx, guest_visible); > case POWERPC_MMU_REAL: > return ppc_real_mode_xlate(cpu, eaddr, access_type, raddrp, psizep, > protp); > case POWERPC_MMU_MPC8xx: > cpu_abort(env_cpu(&cpu->env), "MPC8xx MMU model is not > implemented\n"); > default: > - return ppc_jumbo_xlate(cpu, eaddr, access_type, raddrp, > - psizep, protp, mmu_idx, guest_visible); > + cpu_abort(CPU(cpu), "Unknown or invalid MMU model\n"); > } > } >