]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
softfloat: Add flag specific to sqrt(-x)
authorRichard Henderson <richard.henderson@linaro.org>
Fri, 17 Dec 2021 16:57:14 +0000 (17:57 +0100)
committerCédric Le Goater <clg@kaod.org>
Fri, 17 Dec 2021 16:57:14 +0000 (17:57 +0100)
PowerPC has this flag, and it's easier to compute it here
than after the fact.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20211119160502.17432-6-richard.henderson@linaro.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
fpu/softfloat-parts.c.inc
include/fpu/softfloat-types.h

index b8563cd2df8d96bad58009755aa922396c5aedb6..cc8c2c3aee1a8118e621bafddd82887eccde7690 100644 (file)
@@ -869,7 +869,7 @@ static void partsN(sqrt)(FloatPartsN *a, float_status *status,
     return;
 
  d_nan:
-    float_raise(float_flag_invalid, status);
+    float_raise(float_flag_invalid | float_flag_invalid_sqrt, status);
     parts_default_nan(a, status);
 }
 
index 5a9671e564c674b1b3c0800abbe015c54cd6989f..33224b5f227d0cf38b3152138aacfe0af2a520ad 100644 (file)
@@ -156,6 +156,7 @@ enum {
     float_flag_invalid_imz     = 0x0100,  /* inf * 0 */
     float_flag_invalid_idi     = 0x0200,  /* inf / inf */
     float_flag_invalid_zdz     = 0x0400,  /* 0 / 0 */
+    float_flag_invalid_sqrt    = 0x0800,  /* sqrt(-x) */
 };
 
 /*