@samitouri / QOSamiQemu / commits / 456e18911a

fpu: Drop parts_pick_nan

Use parts{64,128}_pick_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:32 UTC 456e18911a37cedaa2fa0e3944747735d49d5276
2 files changed +7 -14
fpu/softfloat-parts.c.inc
+5 -5
@@ -604,7 +604,7 @@ static FloatPartsN *partsN(addsub)(FloatPartsN *a, FloatPartsN *b,
604 return b;
605
606 p_nan:
607 - return parts_pick_nan(a, b, s);
607 + return partsN(pick_nan)(a, b, s);
608 }
609
610 /*
@@ -646,7 +646,7 @@ static FloatPartsN *partsN(mul)(FloatPartsN *a, FloatPartsN *b,
646 }
647
648 if (unlikely(ab_mask & float_cmask_anynan)) {
649 - return parts_pick_nan(a, b, s);
649 + return partsN(pick_nan)(a, b, s);
650 }
651
652 /* Multiply by 0 or Inf */
@@ -832,7 +832,7 @@ static FloatPartsN *partsN(div)(FloatPartsN *a, FloatPartsN *b,
832
833 /* All the NaN cases */
834 if (unlikely(ab_mask & float_cmask_anynan)) {
835 - return parts_pick_nan(a, b, s);
835 + return partsN(pick_nan)(a, b, s);
836 }
837
838 if ((ab_mask & float_cmask_denormal) && b->cls != float_class_zero) {
@@ -890,7 +890,7 @@ static FloatPartsN *partsN(modrem)(FloatPartsN *a, FloatPartsN *b,
890
891 /* All the NaN cases */
892 if (unlikely(ab_mask & float_cmask_anynan)) {
893 - return parts_pick_nan(a, b, s);
893 + return partsN(pick_nan)(a, b, s);
894 }
895
896 /* Inf % N; N % 0 */
@@ -1592,7 +1592,7 @@ static FloatPartsN *partsN(minmax)(FloatPartsN *a, FloatPartsN *b,
1592 return is_nan(a->cls) ? b : a;
1593 }
1594
1595 - return parts_pick_nan(a, b, s);
1595 + return partsN(pick_nan)(a, b, s);
1596 }
1597
1598 if (ab_mask & float_cmask_denormal) {
fpu/softfloat.c
+2 -9
@@ -779,13 +779,6 @@ static float128 QEMU_FLATTEN float128_pack_raw(const FloatParts128 *p)
779 FloatParts128 *: parts128_##NAME, \
780 FloatParts256 *: parts256_##NAME)
781
782 -static FloatParts64 *parts64_pick_nan(FloatParts64 *a, FloatParts64 *b,
783 - float_status *s);
784 -static FloatParts128 *parts128_pick_nan(FloatParts128 *a, FloatParts128 *b,
785 - float_status *s);
786 -
787 -#define parts_pick_nan(A, B, S) PARTS_GENERIC_64_128(pick_nan, A)(A, B, S)
788 -
782 static FloatParts64 *parts64_pick_nan_muladd(FloatParts64 *a, FloatParts64 *b,
783 FloatParts64 *c, float_status *s,
784 int ab_mask, int abc_mask);
@@ -5175,7 +5168,7 @@ floatx80 propagateFloatx80NaN(floatx80 a, floatx80 b, float_status *status)
5168 return floatx80_default_nan(status);
5169 }
5170
5178 - pr = parts_pick_nan(&pa, &pb, status);
5171 + pr = parts128_pick_nan(&pa, &pb, status);
5172 return floatx80_round_pack_canonical(pr, status);
5173 }
5174
@@ -5525,7 +5518,7 @@ static void parts_s390_divide_to_integer(FloatParts64 *a, FloatParts64 *b,
5518 {
5519 /* POp table "Results: DIVIDE TO INTEGER (Part 1 of 2)" */
5520 if ((float_cmask(a->cls) | float_cmask(b->cls)) & float_cmask_anynan) {
5528 - *r = *parts_pick_nan(a, b, status);
5521 + *r = *parts64_pick_nan(a, b, status);
5522 *n = *r;
5523 *cc = 1;
5524 } else if (a->cls == float_class_inf || b->cls == float_class_zero) {