@samitouri / QOSamiQemu / commits / 96362bd2d1

fpu: Drop parts_return_nan

Use parts{64,128}_return_nan at each call site. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Richard Henderson committed Apr 26, 2026 at 19:28 UTC 96362bd2d12d468eb46e983ca5ffdafdfc64e593
2 files changed +10 -15
fpu/softfloat-parts.c.inc
+4 -4
@@ -941,7 +941,7 @@ static void partsN(sqrt)(FloatPartsN *a, float_status *status,
941 break;
942 case float_class_snan:
943 case float_class_qnan:
944 - parts_return_nan(a, status);
944 + partsN(return_nan)(a, status);
945 return;
946 case float_class_zero:
947 return;
@@ -1263,7 +1263,7 @@ static void partsN(round_to_int)(FloatPartsN *a, FloatRoundMode rmode,
1263 switch (a->cls) {
1264 case float_class_qnan:
1265 case float_class_snan:
1266 - parts_return_nan(a, s);
1266 + partsN(return_nan)(a, s);
1267 break;
1268 case float_class_zero:
1269 case float_class_inf:
@@ -1735,7 +1735,7 @@ static void partsN(scalbn)(FloatPartsN *a, int n, float_status *s)
1735 switch (a->cls) {
1736 case float_class_snan:
1737 case float_class_qnan:
1738 - parts_return_nan(a, s);
1738 + partsN(return_nan)(a, s);
1739 break;
1740 case float_class_zero:
1741 case float_class_inf:
@@ -1770,7 +1770,7 @@ static void partsN(log2)(FloatPartsN *a, float_status *s, const FloatFmt *fmt)
1770 break;
1771 case float_class_snan:
1772 case float_class_qnan:
1773 - parts_return_nan(a, s);
1773 + partsN(return_nan)(a, s);
1774 return;
1775 case float_class_zero:
1776 float_raise(float_flag_divbyzero, s);
fpu/softfloat.c
+6 -11
@@ -779,11 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const FloatParts128 *p)
779 FloatParts128 *: parts128_##NAME, \
780 FloatParts256 *: parts256_##NAME)
781
782 -static void parts64_return_nan(FloatParts64 *a, float_status *s);
783 -static void parts128_return_nan(FloatParts128 *a, float_status *s);
784 -
785 -#define parts_return_nan(P, S) PARTS_GENERIC_64_128(return_nan, P)(P, S)
786 -
782 static FloatParts64 *parts64_pick_nan(FloatParts64 *a, FloatParts64 *b,
783 float_status *s);
784 static FloatParts128 *parts128_pick_nan(FloatParts128 *a, FloatParts128 *b,
@@ -2831,7 +2826,7 @@ static void parts_float_to_e5m2(FloatParts64 *a, float_status *s, bool saturate)
2826 switch (a->cls) {
2827 case float_class_snan:
2828 case float_class_qnan:
2834 - parts_return_nan(a, s);
2829 + parts64_return_nan(a, s);
2830 break;
2831
2832 case float_class_inf:
@@ -2858,7 +2853,7 @@ static void parts_float_to_e5m2(FloatParts64 *a, float_status *s, bool saturate)
2853 static void parts64_float_to_float(FloatParts64 *a, float_status *s)
2854 {
2855 if (is_nan(a->cls)) {
2861 - parts_return_nan(a, s);
2856 + parts64_return_nan(a, s);
2857 }
2858 if (a->cls == float_class_denormal) {
2859 float_raise(float_flag_input_denormal_used, s);
@@ -2868,7 +2863,7 @@ static void parts64_float_to_float(FloatParts64 *a, float_status *s)
2863 static void parts128_float_to_float(FloatParts128 *a, float_status *s)
2864 {
2865 if (is_nan(a->cls)) {
2871 - parts_return_nan(a, s);
2866 + parts128_return_nan(a, s);
2867 }
2868 if (a->cls == float_class_denormal) {
2869 float_raise(float_flag_input_denormal_used, s);
@@ -2896,7 +2891,7 @@ static void parts_float_to_float_narrow(FloatParts64 *a, FloatParts128 *b,
2891 case float_class_qnan:
2892 /* Discard the low bits of the NaN. */
2893 a->frac = b->frac_hi;
2899 - parts_return_nan(a, s);
2894 + parts64_return_nan(a, s);
2895 break;
2896 default:
2897 break;
@@ -2912,7 +2907,7 @@ static void parts_float_to_float_widen(FloatParts128 *a, FloatParts64 *b,
2907 frac_widen(a, b);
2908
2909 if (is_nan(a->cls)) {
2915 - parts_return_nan(a, s);
2910 + parts128_return_nan(a, s);
2911 }
2912 if (a->cls == float_class_denormal) {
2913 float_raise(float_flag_input_denormal_used, s);
@@ -5474,7 +5469,7 @@ float32 float32_exp2(float32 a, float_status *status)
5469 break;
5470 case float_class_snan:
5471 case float_class_qnan:
5477 - parts_return_nan(&xp, status);
5472 + parts64_return_nan(&xp, status);
5473 return float32_round_pack_canonical(&xp, status);
5474 case float_class_inf:
5475 return xp.sign ? float32_zero : a;