qemu-ppc
[Top][All Lists]
Advanced

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

Re: [Qemu-ppc] [PATCH 03/14] target-ppc: Use float64 arg in helper_compu


From: David Gibson
Subject: Re: [Qemu-ppc] [PATCH 03/14] target-ppc: Use float64 arg in helper_compute_fprf()
Date: Fri, 6 Jan 2017 09:01:17 +1100
User-agent: Mutt/1.7.1 (2016-10-04)

On Thu, Jan 05, 2017 at 04:56:08PM +0530, Nikunj A Dadhania wrote:
> From: Bharata B Rao <address@hidden>
> 
> Use float64 argument instead of unit64_t in helper_compute_fprf()
> This allows code in helper_compute_fprf() to be reused later to
> work with float128 argument too.
> 
> Signed-off-by: Bharata B Rao <address@hidden>
> Signed-off-by: Nikunj A Dadhania <address@hidden>

Uh.. how can this possibly be correct, without updating the callers of
helper_compute_fprf()?

> ---
>  target-ppc/fpu_helper.c | 16 +++++++---------
>  1 file changed, 7 insertions(+), 9 deletions(-)
> 
> diff --git a/target-ppc/fpu_helper.c b/target-ppc/fpu_helper.c
> index 1ccd5e6..4da991a 100644
> --- a/target-ppc/fpu_helper.c
> +++ b/target-ppc/fpu_helper.c
> @@ -66,23 +66,21 @@ static inline int ppc_float64_get_unbiased_exp(float64 f)
>      return ((f >> 52) & 0x7FF) - 1023;
>  }
>  
> -void helper_compute_fprf(CPUPPCState *env, uint64_t arg)
> +void helper_compute_fprf(CPUPPCState *env, float64 arg)
>  {
> -    CPU_DoubleU farg;
>      int isneg;
>      int fprf;
>  
> -    farg.ll = arg;
> -    isneg = float64_is_neg(farg.d);
> -    if (unlikely(float64_is_any_nan(farg.d))) {
> -        if (float64_is_signaling_nan(farg.d, &env->fp_status)) {
> +    isneg = float64_is_neg(arg);
> +    if (unlikely(float64_is_any_nan(arg))) {
> +        if (float64_is_signaling_nan(arg, &env->fp_status)) {
>              /* Signaling NaN: flags are undefined */
>              fprf = 0x00;
>          } else {
>              /* Quiet NaN */
>              fprf = 0x11;
>          }
> -    } else if (unlikely(float64_is_infinity(farg.d))) {
> +    } else if (unlikely(float64_is_infinity(arg))) {
>          /* +/- infinity */
>          if (isneg) {
>              fprf = 0x09;
> @@ -90,7 +88,7 @@ void helper_compute_fprf(CPUPPCState *env, uint64_t arg)
>              fprf = 0x05;
>          }
>      } else {
> -        if (float64_is_zero(farg.d)) {
> +        if (float64_is_zero(arg)) {
>              /* +/- zero */
>              if (isneg) {
>                  fprf = 0x12;
> @@ -98,7 +96,7 @@ void helper_compute_fprf(CPUPPCState *env, uint64_t arg)
>                  fprf = 0x02;
>              }
>          } else {
> -            if (isden(farg.d)) {
> +            if (isden(arg)) {
>                  /* Denormalized numbers */
>                  fprf = 0x10;
>              } else {

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: signature.asc
Description: PGP signature


reply via email to

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