OSDN Git Service

softfloat: Convert floatx80_round to FloatParts
authorRichard Henderson <richard.henderson@linaro.org>
Sat, 21 Nov 2020 20:51:14 +0000 (12:51 -0800)
committerRichard Henderson <richard.henderson@linaro.org>
Thu, 3 Jun 2021 21:09:02 +0000 (14:09 -0700)
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
fpu/softfloat.c

index 5a320e5..74787d5 100644 (file)
@@ -5792,10 +5792,12 @@ float128 floatx80_to_float128(floatx80 a, float_status *status)
 
 floatx80 floatx80_round(floatx80 a, float_status *status)
 {
-    return roundAndPackFloatx80(status->floatx80_rounding_precision,
-                                extractFloatx80Sign(a),
-                                extractFloatx80Exp(a),
-                                extractFloatx80Frac(a), 0, status);
+    FloatParts128 p;
+
+    if (!floatx80_unpack_canonical(&p, a, status)) {
+        return floatx80_default_nan(status);
+    }
+    return floatx80_round_pack_canonical(&p, status);
 }
 
 /*----------------------------------------------------------------------------