qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Richard Henderson <richard.henderson@linaro.org>
To: Taylor Simpson <tsimpson@quicinc.com>, qemu-devel@nongnu.org
Cc: ale@rev.ng, bcain@quicinc.com, philmd@redhat.com
Subject: Re: [PATCH 09/15] Hexagon (target/hexagon) use softfloat for float-to-int conversions
Date: Thu, 25 Mar 2021 10:09:10 -0600	[thread overview]
Message-ID: <4dca7e06-0782-90dc-c058-b4249193a616@linaro.org> (raw)
In-Reply-To: <1616640610-17319-10-git-send-email-tsimpson@quicinc.com>

On 3/24/21 8:50 PM, Taylor Simpson wrote:
> @@ -451,16 +456,28 @@ int32_t HELPER(conv_sf2w)(CPUHexagonState *env, float32 RsV)
>   {
>       int32_t RdV;
>       arch_fpop_start(env);
> -    RdV = conv_sf_to_4s(RsV, &env->fp_status);
> +    /* Hexagon returns -1 for NaN */
> +    if (float32_is_any_nan(RsV)) {
> +        float_raise(float_flag_invalid, &env->fp_status);
> +        RdV = -1;
> +    } else {
> +        RdV = float32_to_int32(RsV, &env->fp_status);
> +    }

So this is interesting.

The 8.3.x Document Bundle, which has the V67 programmer's manual, say the 
output value is IMPLEMENTATION DEFINED (without saying anything more about 
defining values for any particular implementation), while the older 2010 manual 
specifies 0x7fffffff as the result (which is what float32_to_int32 provides).

I must say I find the newer manual very lacking on details, including the 
non-specification of the Behavior pseudocode functions.

I guess the only thing we can do is document this as matching some particular 
hardware implementation?


r~


  reply	other threads:[~2021-03-25 16:29 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-25  2:49 [PATCH 00/15] Hexagon (target/hexagon) update Taylor Simpson
2021-03-25  2:49 ` [PATCH 01/15] Hexagon (target/hexagon) TCG generation cleanup Taylor Simpson
2021-03-25 12:56   ` Richard Henderson
2021-03-25  2:49 ` [PATCH 02/15] Hexagon (target/hexagon) remove unnecessary inline directives Taylor Simpson
2021-03-25 13:02   ` Richard Henderson
2021-03-25  2:49 ` [PATCH 03/15] Hexagon (target/hexagon) properly generate TB end for DISAS_NORETURN Taylor Simpson
2021-03-25 14:38   ` Richard Henderson
2021-03-25  2:49 ` [PATCH 04/15] Hexagon (target/hexagon) decide if pred has been written at TCG gen time Taylor Simpson
2021-03-25 14:42   ` Richard Henderson
2021-03-25  2:50 ` [PATCH 05/15] Hexagon (target/hexagon) change variables from int to bool when appropriate Taylor Simpson
2021-03-25  9:35   ` Philippe Mathieu-Daudé
2021-03-25 14:44   ` Richard Henderson
2021-03-25  2:50 ` [PATCH 06/15] Hexagon (target/hexagon) utility function changes Taylor Simpson
2021-03-25 14:45   ` Richard Henderson
2021-03-25  2:50 ` [PATCH 07/15] Hexagon (target/hexagon) use softfloat default NaN and tininess Taylor Simpson
2021-03-25 14:54   ` Richard Henderson
2021-03-25  2:50 ` [PATCH 08/15] Hexagon (target/hexagon) replace float32_mul_pow2 with float32_scalbn Taylor Simpson
2021-03-25 14:55   ` Richard Henderson
2021-03-25  2:50 ` [PATCH 09/15] Hexagon (target/hexagon) use softfloat for float-to-int conversions Taylor Simpson
2021-03-25 16:09   ` Richard Henderson [this message]
2021-03-25 16:17     ` Richard Henderson
2021-03-25  2:50 ` [PATCH 10/15] Hexagon (target/hexagon) instructions with multiple definitions Taylor Simpson
2021-03-25 16:24   ` Richard Henderson
2021-03-29 21:55     ` Taylor Simpson
2021-03-25  2:50 ` [PATCH 11/15] Hexagon (target/hexagon) circular addressing Taylor Simpson
2021-03-25 16:33   ` Richard Henderson
2021-03-25 17:37     ` Taylor Simpson
2021-03-25  2:50 ` [PATCH 12/15] Hexagon (target/hexagon) bit reverse (brev) addressing Taylor Simpson
2021-03-25 16:38   ` Richard Henderson
2021-03-25  2:50 ` [PATCH 13/15] Hexagon (target/hexagon) load and unpack bytes instructions Taylor Simpson
2021-03-25  2:50 ` [PATCH 14/15] Hexagon (target/hexagon) load into shifted register instructions Taylor Simpson
2021-03-25 16:44   ` Richard Henderson
2021-03-25  2:50 ` [PATCH 15/15] Hexagon (target/hexagon) CABAC decode bin Taylor Simpson
2021-03-25 16:54   ` Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4dca7e06-0782-90dc-c058-b4249193a616@linaro.org \
    --to=richard.henderson@linaro.org \
    --cc=ale@rev.ng \
    --cc=bcain@quicinc.com \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=tsimpson@quicinc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).