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) {