qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 09/15] Hexagon (target/hexagon) use softfloat for float-to-in


From: Richard Henderson
Subject: Re: [PATCH 09/15] Hexagon (target/hexagon) use softfloat for float-to-int conversions
Date: Thu, 25 Mar 2021 10:17:46 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1

On 3/25/21 10:09 AM, Richard Henderson wrote:
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).

OMG, I had the wrong manual open.  Ignore me.

r~




reply via email to

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