@samitouri / QOSamiQemu / commits / 161a5e07dd

fpu: Drop parts_{add,sub}_normal

Drop the forward declarations and the _Generic macros. Add partsW() for use by muladd_scalbn. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Richard Henderson committed Apr 26, 2026 at 17:50 UTC 161a5e07dd54821f455e62242058862d344e40b5
2 files changed +8 -20
fpu/softfloat-parts.c.inc
+6 -6
@@ -541,7 +541,7 @@ static FloatPartsN *partsN(addsub)(FloatPartsN *a, FloatPartsN *b,
541 if (a->sign != b_sign) {
542 /* Subtraction */
543 if (likely(cmask_is_only_normals(ab_mask))) {
544 - if (parts_sub_normal(a, b)) {
544 + if (partsN(sub_normal)(a, b)) {
545 return a;
546 }
547 /* Subtract was exact, fall through to set sign. */
@@ -574,7 +574,7 @@ static FloatPartsN *partsN(addsub)(FloatPartsN *a, FloatPartsN *b,
574 } else {
575 /* Addition */
576 if (likely(cmask_is_only_normals(ab_mask))) {
577 - parts_add_normal(a, b);
577 + partsN(add_normal)(a, b);
578 return a;
579 }
580
@@ -760,8 +760,8 @@ static FloatPartsN *partsN(muladd_scalbn)(FloatPartsN *a, FloatPartsN *b,
760 c_widen.exp = c->exp;
761
762 if (a->sign == c->sign) {
763 - parts_add_normal(&p_widen, &c_widen);
764 - } else if (!parts_sub_normal(&p_widen, &c_widen)) {
763 + partsW(add_normal)(&p_widen, &c_widen);
764 + } else if (!partsW(sub_normal)(&p_widen, &c_widen)) {
765 goto return_sub_zero;
766 }
767 }
@@ -1869,9 +1869,9 @@ static void partsN(log2)(FloatPartsN *a, float_status *s, const FloatFmt *fmt)
1869 f.exp = f_exp - frac_normalize(&f);
1870
1871 if (a_exp < 0) {
1872 - parts_sub_normal(a, &f);
1872 + partsN(sub_normal)(a, &f);
1873 } else if (a_exp > 0) {
1874 - parts_add_normal(a, &f);
1874 + partsN(add_normal)(a, &f);
1875 } else {
1876 *a = f;
1877 }
fpu/softfloat.c
+2 -14
@@ -779,20 +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_add_normal(FloatParts64 *a, FloatParts64 *b);
783 -static void parts128_add_normal(FloatParts128 *a, FloatParts128 *b);
784 -static void parts256_add_normal(FloatParts256 *a, FloatParts256 *b);
785 -
786 -#define parts_add_normal(A, B) \
787 - PARTS_GENERIC_64_128_256(add_normal, A)(A, B)
788 -
789 -static bool parts64_sub_normal(FloatParts64 *a, FloatParts64 *b);
790 -static bool parts128_sub_normal(FloatParts128 *a, FloatParts128 *b);
791 -static bool parts256_sub_normal(FloatParts256 *a, FloatParts256 *b);
792 -
793 -#define parts_sub_normal(A, B) \
794 - PARTS_GENERIC_64_128_256(sub_normal, A)(A, B)
795 -
782 static FloatParts64 *parts64_addsub(FloatParts64 *a, FloatParts64 *b,
783 float_status *s, bool subtract);
784 static FloatParts128 *parts128_addsub(FloatParts128 *a, FloatParts128 *b,
@@ -1635,6 +1621,7 @@ static const uint16_t rsqrt_tab[128] = {
1621 };
1622
1623 #define partsN(NAME) glue(glue(glue(parts,N),_),NAME)
1624 +#define partsW(NAME) glue(glue(glue(parts,W),_),NAME)
1625 #define FloatPartsN glue(FloatParts,N)
1626 #define FloatPartsW glue(FloatParts,W)
1627
@@ -1660,6 +1647,7 @@ static const uint16_t rsqrt_tab[128] = {
1647 #undef N
1648 #undef W
1649 #undef partsN
1650 +#undef partsW
1651 #undef FloatPartsN
1652 #undef FloatPartsW
1653