qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 05/17] ppc: use CRF_* in fpu_helper.c


From: Tom Musta
Subject: Re: [Qemu-devel] [PATCH 05/17] ppc: use CRF_* in fpu_helper.c
Date: Wed, 03 Sep 2014 13:21:39 -0500
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0

On 8/28/2014 12:15 PM, Paolo Bonzini wrote:
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
>  target-ppc/fpu_helper.c | 32 ++++++++++++++++----------------
>  1 file changed, 16 insertions(+), 16 deletions(-)
> 
> diff --git a/target-ppc/fpu_helper.c b/target-ppc/fpu_helper.c
> index da93d12..0fe006a 100644
> --- a/target-ppc/fpu_helper.c
> +++ b/target-ppc/fpu_helper.c
> @@ -1043,7 +1043,7 @@ uint32_t helper_ftdiv(uint64_t fra, uint64_t frb)
>          }
>      }
>  
> -    return 0x8 | (fg_flag ? 4 : 0) | (fe_flag ? 2 : 0);
> +    return (1 << CRF_LT) | (fg_flag << CRF_GT) | (fe_flag << CRF_EQ);
>  }
>  
>  uint32_t helper_ftsqrt(uint64_t frb)
> @@ -1074,7 +1074,7 @@ uint32_t helper_ftsqrt(uint64_t frb)
>          }
>      }
>  
> -    return 0x8 | (fg_flag ? 4 : 0) | (fe_flag ? 2 : 0);
> +    return (1 << CRF_LT) | (fg_flag << CRF_GT) | (fe_flag << CRF_EQ);
>  }
>  
>  void helper_fcmpu(CPUPPCState *env, uint64_t arg1, uint64_t arg2,
> @@ -1088,19 +1088,19 @@ void helper_fcmpu(CPUPPCState *env, uint64_t arg1, 
> uint64_t arg2,
>  
>      if (unlikely(float64_is_any_nan(farg1.d) ||
>                   float64_is_any_nan(farg2.d))) {
> -        ret = 0x01UL;
> +        ret = CRF_SO;
>      } else if (float64_lt(farg1.d, farg2.d, &env->fp_status)) {
> -        ret = 0x08UL;
> +        ret = CRF_LT;
>      } else if (!float64_le(farg1.d, farg2.d, &env->fp_status)) {
> -        ret = 0x04UL;
> +        ret = CRF_GT;
>      } else {
> -        ret = 0x02UL;
> +        ret = CRF_EQ;
>      }
>  
>      env->fpscr &= ~(0x0F << FPSCR_FPRF);
> -    env->fpscr |= ret << FPSCR_FPRF;
> -    env->crf[crfD] = ret;
> -    if (unlikely(ret == 0x01UL
> +    env->fpscr |= (0x01 << FPSCR_FPRF) << ret;
> +    env->crf[crfD] = (1 << ret);
> +    if (unlikely(ret == CRF_SO
>                   && (float64_is_signaling_nan(farg1.d) ||
>                       float64_is_signaling_nan(farg2.d)))) {
>          /* sNaN comparison */
> @@ -1119,19 +1119,19 @@ void helper_fcmpo(CPUPPCState *env, uint64_t arg1, 
> uint64_t arg2,
>  
>      if (unlikely(float64_is_any_nan(farg1.d) ||
>                   float64_is_any_nan(farg2.d))) {
> -        ret = 0x01UL;
> +        ret = CRF_SO;
>      } else if (float64_lt(farg1.d, farg2.d, &env->fp_status)) {
> -        ret = 0x08UL;
> +        ret = CRF_LT;
>      } else if (!float64_le(farg1.d, farg2.d, &env->fp_status)) {
> -        ret = 0x04UL;
> +        ret = CRF_GT;
>      } else {
> -        ret = 0x02UL;
> +        ret = CRF_EQ;
>      }
>  
>      env->fpscr &= ~(0x0F << FPSCR_FPRF);
> -    env->fpscr |= ret << FPSCR_FPRF;
> -    env->crf[crfD] = ret;
> -    if (unlikely(ret == 0x01UL)) {
> +    env->fpscr |= (0x01 << FPSCR_FPRF) << ret;
> +    env->crf[crfD] = (1 << ret);
> +    if (unlikely(ret == CRF_SO)) {
>          if (float64_is_signaling_nan(farg1.d) ||
>              float64_is_signaling_nan(farg2.d)) {
>              /* sNaN comparison */
> 

I like this patch.

Nit: for the fcmp* functions, "ret" is not a very good name for the variable.  
Since this is a cleanup patch, I would suggest renaming it to "fpcc".

Other than that ...

Reviewed-by: Tom Musta <address@hidden>
Tested-by: Tom Musta <address@hidden>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]