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__);


Reply via email to