@samitouri / QOSamiQemu / commits / f931b9d581

fpu: Drop parts_canonicalize

Use the specific parts{64,12}_canonicalize at each site. Drop the forward declarations. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Richard Henderson committed Apr 25, 2026 at 17:44 UTC f931b9d5814d8ae3ea2de680c97bc0a2d8cde410
1 file changed +10 -18
fpu/softfloat.c
+10 -18
@@ -806,14 +806,6 @@ static FloatParts128 *parts128_pick_nan_muladd(FloatParts128 *a,
806 #define parts_pick_nan_muladd(A, B, C, S, ABM, ABCM) \
807 PARTS_GENERIC_64_128(pick_nan_muladd, A)(A, B, C, S, ABM, ABCM)
808
809 -static void parts64_canonicalize(FloatParts64 *p, float_status *status,
810 - const FloatFmt *fmt);
811 -static void parts128_canonicalize(FloatParts128 *p, float_status *status,
812 - const FloatFmt *fmt);
813 -
814 -#define parts_canonicalize(A, S, F) \
815 - PARTS_GENERIC_64_128(canonicalize, A)(A, S, F)
816 -
809 static void parts64_uncanon_normal(FloatParts64 *p, float_status *status,
810 const FloatFmt *fmt, bool saturate);
811 static void parts128_uncanon_normal(FloatParts128 *p, float_status *status,
@@ -1723,28 +1715,28 @@ static void float4_e2m1_unpack_canonical(FloatParts64 *p, float4_e2m1 f,
1715 float_status *s)
1716 {
1717 float4_e2m1_unpack_raw(p, f);
1726 - parts_canonicalize(p, s, &float4_e2m1_params);
1718 + parts64_canonicalize(p, s, &float4_e2m1_params);
1719 }
1720
1721 static void float8_e4m3_unpack_canonical(FloatParts64 *p, float8_e4m3 f,
1722 float_status *s)
1723 {
1724 float8_e4m3_unpack_raw(p, f);
1733 - parts_canonicalize(p, s, &float8_e4m3_params);
1725 + parts64_canonicalize(p, s, &float8_e4m3_params);
1726 }
1727
1728 static void float8_e5m2_unpack_canonical(FloatParts64 *p, float8_e5m2 f,
1729 float_status *s)
1730 {
1731 float8_e5m2_unpack_raw(p, f);
1740 - parts_canonicalize(p, s, &float8_e5m2_params);
1732 + parts64_canonicalize(p, s, &float8_e5m2_params);
1733 }
1734
1735 static void float16a_unpack_canonical(FloatParts64 *p, float16 f,
1736 float_status *s, const FloatFmt *params)
1737 {
1738 float16_unpack_raw(p, f);
1747 - parts_canonicalize(p, s, params);
1739 + parts64_canonicalize(p, s, params);
1740 }
1741
1742 static void float16_unpack_canonical(FloatParts64 *p, float16 f,
@@ -1757,7 +1749,7 @@ static void bfloat16_unpack_canonical(FloatParts64 *p, bfloat16 f,
1749 float_status *s)
1750 {
1751 bfloat16_unpack_raw(p, f);
1760 - parts_canonicalize(p, s, &bfloat16_params);
1752 + parts64_canonicalize(p, s, &bfloat16_params);
1753 }
1754
1755 static float8_e4m3 float8_e4m3_round_pack_canonical(FloatParts64 *p,
@@ -1801,7 +1793,7 @@ static void float32_unpack_canonical(FloatParts64 *p, float32 f,
1793 float_status *s)
1794 {
1795 float32_unpack_raw(p, f);
1804 - parts_canonicalize(p, s, &float32_params);
1796 + parts64_canonicalize(p, s, &float32_params);
1797 }
1798
1799 static float32 float32_round_pack_canonical(FloatParts64 *p,
@@ -1815,7 +1807,7 @@ static void float64_unpack_canonical(FloatParts64 *p, float64 f,
1807 float_status *s)
1808 {
1809 float64_unpack_raw(p, f);
1818 - parts_canonicalize(p, s, &float64_params);
1810 + parts64_canonicalize(p, s, &float64_params);
1811 }
1812
1813 static float64 float64_round_pack_canonical(FloatParts64 *p,
@@ -1878,7 +1870,7 @@ static void float128_unpack_canonical(FloatParts128 *p, float128 f,
1870 float_status *s)
1871 {
1872 float128_unpack_raw(p, f);
1881 - parts_canonicalize(p, s, &float128_params);
1873 + parts128_canonicalize(p, s, &float128_params);
1874 }
1875
1876 static float128 float128_round_pack_canonical(FloatParts128 *p,
@@ -1910,7 +1902,7 @@ static bool floatx80_unpack_canonical(FloatParts128 *p, floatx80 f,
1902 floatx80_unpack_raw(p, f);
1903
1904 if (likely(p->exp != floatx80_params[floatx80_precision_x].exp_max)) {
1913 - parts_canonicalize(p, s, &floatx80_params[floatx80_precision_x]);
1905 + parts128_canonicalize(p, s, &floatx80_params[floatx80_precision_x]);
1906 } else {
1907 /* The explicit integer bit is ignored, after invalid checks. */
1908 p->frac_hi &= MAKE_64BIT_MASK(0, 63);
@@ -5611,7 +5603,7 @@ static void parts_s390_divide_to_integer(FloatParts64 *a, FloatParts64 *b,
5603 parts_uncanon(r, status, fmt, false);
5604 r_flags = status->float_exception_flags;
5605 r->frac &= (1ULL << fmt->frac_size) - 1;
5614 - parts_canonicalize(r, status, fmt);
5606 + parts64_canonicalize(r, status, fmt);
5607
5608 /* POp table "Results: DIVIDE TO INTEGER (Part 2 of 2)" */
5609 if (is_q_smallish) {