]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
fpu/softfloat: fix up float16 nan recognition
authorLIU Zhiwei <zhiwei_liu@c-sky.com>
Mon, 13 Jul 2020 20:04:08 +0000 (21:04 +0100)
committerAlex Bennée <alex.bennee@linaro.org>
Wed, 15 Jul 2020 10:52:43 +0000 (11:52 +0100)
Signed-off-by: LIU Zhiwei <zhiwei_liu@c-sky.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200712234521.3972-2-zhiwei_liu@c-sky.com>
Message-Id: <20200713200415.26214-5-alex.bennee@linaro.org>

fpu/softfloat-specialize.inc.c

index 44f5b661f8312e4ed4382144db02f1e85dc1e026..034d18199cc6d86cee34665b3c86892e28878264 100644 (file)
@@ -254,7 +254,7 @@ bool float16_is_quiet_nan(float16 a_, float_status *status)
     if (snan_bit_is_one(status)) {
         return (((a >> 9) & 0x3F) == 0x3E) && (a & 0x1FF);
     } else {
-        return ((a & ~0x8000) >= 0x7C80);
+        return ((a >> 9) & 0x3F) == 0x3F;
     }
 #endif
 }
@@ -271,7 +271,7 @@ bool float16_is_signaling_nan(float16 a_, float_status *status)
 #else
     uint16_t a = float16_val(a_);
     if (snan_bit_is_one(status)) {
-        return ((a & ~0x8000) >= 0x7C80);
+        return ((a >> 9) & 0x3F) == 0x3F;
     } else {
         return (((a >> 9) & 0x3F) == 0x3E) && (a & 0x1FF);
     }