Message ID | e3538f2cd74f716237586971bddcbc40d27fb38b.1716763435.git.balaton@eik.bme.hu (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Remaining MMU clean up patches | expand |
On Mon May 27, 2024 at 9:12 AM AEST, BALATON Zoltan wrote: > Pass raddr and prot in function parameters instead. > > Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> Reviewed-by: Nicholas Piggin <npiggin@gmail.com> > --- > target/ppc/mmu_common.c | 26 +++++++++++++------------- > 1 file changed, 13 insertions(+), 13 deletions(-) > > diff --git a/target/ppc/mmu_common.c b/target/ppc/mmu_common.c > index be09c3b1a3..ede409eb99 100644 > --- a/target/ppc/mmu_common.c > +++ b/target/ppc/mmu_common.c > @@ -91,10 +91,9 @@ int ppc6xx_tlb_getnum(CPUPPCState *env, target_ulong eaddr, > > /* Software driven TLB helpers */ > > -static int ppc6xx_tlb_check(CPUPPCState *env, > - mmu_ctx_t *ctx, target_ulong eaddr, > - MMUAccessType access_type, target_ulong ptem, > - bool key, bool nx) > +static int ppc6xx_tlb_check(CPUPPCState *env, hwaddr *raddr, int *prot, > + target_ulong eaddr, MMUAccessType access_type, > + target_ulong ptem, bool key, bool nx) > { > ppc6xx_tlb_t *tlb; > target_ulong *pte1p; > @@ -102,7 +101,7 @@ static int ppc6xx_tlb_check(CPUPPCState *env, > bool is_code = (access_type == MMU_INST_FETCH); > > /* Initialize real address with an invalid value */ > - ctx->raddr = (hwaddr)-1ULL; > + *raddr = (hwaddr)-1ULL; > best = -1; > ret = -1; /* No TLB found */ > for (way = 0; way < env->nb_ways; way++) { > @@ -130,17 +129,17 @@ static int ppc6xx_tlb_check(CPUPPCState *env, > continue; > } > /* all matches should have equal RPN, WIMG & PP */ > - if (ctx->raddr != (hwaddr)-1ULL && > - (ctx->raddr & PTE_CHECK_MASK) != (tlb->pte1 & PTE_CHECK_MASK)) { > + if (*raddr != (hwaddr)-1ULL && > + (*raddr & PTE_CHECK_MASK) != (tlb->pte1 & PTE_CHECK_MASK)) { > qemu_log_mask(CPU_LOG_MMU, "Bad RPN/WIMG/PP\n"); > /* TLB inconsistency */ > continue; > } > /* Keep the matching PTE information */ > best = nr; > - ctx->raddr = tlb->pte1; > - ctx->prot = ppc_hash32_prot(key, tlb->pte1 & HPTE32_R_PP, nx); > - if (check_prot_access_type(ctx->prot, access_type)) { > + *raddr = tlb->pte1; > + *prot = ppc_hash32_prot(key, tlb->pte1 & HPTE32_R_PP, nx); > + if (check_prot_access_type(*prot, access_type)) { > qemu_log_mask(CPU_LOG_MMU, "PTE access granted !\n"); > ret = 0; > break; > @@ -152,7 +151,7 @@ static int ppc6xx_tlb_check(CPUPPCState *env, > if (best != -1) { > 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); > + *raddr & TARGET_PAGE_MASK, *prot, ret); > /* Update page flags */ > pte1p = &env->tlb.tlb6[best].pte1; > *pte1p |= 0x00000100; /* Update accessed flag */ > @@ -162,7 +161,7 @@ static int ppc6xx_tlb_check(CPUPPCState *env, > *pte1p |= 0x00000080; > } else { > /* Force page fault for first write access */ > - ctx->prot &= ~PAGE_WRITE; > + *prot &= ~PAGE_WRITE; > } > } > } > @@ -344,7 +343,8 @@ static int mmu6xx_get_physical_address(CPUPPCState *env, mmu_ctx_t *ctx, > *hashp = hash; > > /* Software TLB search */ > - return ppc6xx_tlb_check(env, ctx, eaddr, access_type, ptem, key, nx); > + return ppc6xx_tlb_check(env, &ctx->raddr, &ctx->prot, eaddr, > + access_type, ptem, key, nx); > } > > /* Direct-store segment : absolutely *BUGGY* for now */
diff --git a/target/ppc/mmu_common.c b/target/ppc/mmu_common.c index be09c3b1a3..ede409eb99 100644 --- a/target/ppc/mmu_common.c +++ b/target/ppc/mmu_common.c @@ -91,10 +91,9 @@ int ppc6xx_tlb_getnum(CPUPPCState *env, target_ulong eaddr, /* Software driven TLB helpers */ -static int ppc6xx_tlb_check(CPUPPCState *env, - mmu_ctx_t *ctx, target_ulong eaddr, - MMUAccessType access_type, target_ulong ptem, - bool key, bool nx) +static int ppc6xx_tlb_check(CPUPPCState *env, hwaddr *raddr, int *prot, + target_ulong eaddr, MMUAccessType access_type, + target_ulong ptem, bool key, bool nx) { ppc6xx_tlb_t *tlb; target_ulong *pte1p; @@ -102,7 +101,7 @@ static int ppc6xx_tlb_check(CPUPPCState *env, bool is_code = (access_type == MMU_INST_FETCH); /* Initialize real address with an invalid value */ - ctx->raddr = (hwaddr)-1ULL; + *raddr = (hwaddr)-1ULL; best = -1; ret = -1; /* No TLB found */ for (way = 0; way < env->nb_ways; way++) { @@ -130,17 +129,17 @@ static int ppc6xx_tlb_check(CPUPPCState *env, continue; } /* all matches should have equal RPN, WIMG & PP */ - if (ctx->raddr != (hwaddr)-1ULL && - (ctx->raddr & PTE_CHECK_MASK) != (tlb->pte1 & PTE_CHECK_MASK)) { + if (*raddr != (hwaddr)-1ULL && + (*raddr & PTE_CHECK_MASK) != (tlb->pte1 & PTE_CHECK_MASK)) { qemu_log_mask(CPU_LOG_MMU, "Bad RPN/WIMG/PP\n"); /* TLB inconsistency */ continue; } /* Keep the matching PTE information */ best = nr; - ctx->raddr = tlb->pte1; - ctx->prot = ppc_hash32_prot(key, tlb->pte1 & HPTE32_R_PP, nx); - if (check_prot_access_type(ctx->prot, access_type)) { + *raddr = tlb->pte1; + *prot = ppc_hash32_prot(key, tlb->pte1 & HPTE32_R_PP, nx); + if (check_prot_access_type(*prot, access_type)) { qemu_log_mask(CPU_LOG_MMU, "PTE access granted !\n"); ret = 0; break; @@ -152,7 +151,7 @@ static int ppc6xx_tlb_check(CPUPPCState *env, if (best != -1) { 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); + *raddr & TARGET_PAGE_MASK, *prot, ret); /* Update page flags */ pte1p = &env->tlb.tlb6[best].pte1; *pte1p |= 0x00000100; /* Update accessed flag */ @@ -162,7 +161,7 @@ static int ppc6xx_tlb_check(CPUPPCState *env, *pte1p |= 0x00000080; } else { /* Force page fault for first write access */ - ctx->prot &= ~PAGE_WRITE; + *prot &= ~PAGE_WRITE; } } } @@ -344,7 +343,8 @@ static int mmu6xx_get_physical_address(CPUPPCState *env, mmu_ctx_t *ctx, *hashp = hash; /* Software TLB search */ - return ppc6xx_tlb_check(env, ctx, eaddr, access_type, ptem, key, nx); + return ppc6xx_tlb_check(env, &ctx->raddr, &ctx->prot, eaddr, + access_type, ptem, key, nx); } /* Direct-store segment : absolutely *BUGGY* for now */
Pass raddr and prot in function parameters instead. Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> --- target/ppc/mmu_common.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-)