On Thu May 2, 2024 at 9:43 AM AEST, BALATON Zoltan wrote: > In mmubooke_check_tlb() prot2 is calculated first but only used after > an unrelated check that can return before tha value is used. Move the > calculation after the check, closer to where it is used, to keep them > together and avoid computing it when not needed. > > Signed-off-by: BALATON Zoltan <bala...@eik.bme.hu>
Reviwed-by: Nicholas Piggin <npig...@gmail.com> > --- > target/ppc/mmu_common.c | 11 +++++------ > 1 file changed, 5 insertions(+), 6 deletions(-) > > diff --git a/target/ppc/mmu_common.c b/target/ppc/mmu_common.c > index 751403f1c8..168ff842a5 100644 > --- a/target/ppc/mmu_common.c > +++ b/target/ppc/mmu_common.c > @@ -634,12 +634,6 @@ static int mmubooke_check_tlb(CPUPPCState *env, > ppcemb_tlb_t *tlb, > return -1; > } > > - if (FIELD_EX64(env->msr, MSR, PR)) { > - prot2 = tlb->prot & 0xF; > - } else { > - prot2 = (tlb->prot >> 4) & 0xF; > - } > - > /* Check the address space */ > if ((access_type == MMU_INST_FETCH ? > FIELD_EX64(env->msr, MSR, IR) : > @@ -648,6 +642,11 @@ static int mmubooke_check_tlb(CPUPPCState *env, > ppcemb_tlb_t *tlb, > return -1; > } > > + if (FIELD_EX64(env->msr, MSR, PR)) { > + prot2 = tlb->prot & 0xF; > + } else { > + prot2 = (tlb->prot >> 4) & 0xF; > + } > *prot = prot2; > if (prot2 & prot_for_access_type(access_type)) { > qemu_log_mask(CPU_LOG_MMU, "%s: good TLB!\n", __func__);