@samitouri / QOSamiQemu / commits / 9ee05f6008

fpu: Drop parts_sqrt

Use parts{64,128}_sqrt 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:53 UTC 9ee05f6008d66ef469388caaf3749942d5a1ca66
1 file changed +7 -13
fpu/softfloat.c
+7 -13
@@ -779,12 +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_sqrt(FloatParts64 *a, float_status *s, const FloatFmt *f);
783 -static void parts128_sqrt(FloatParts128 *a, float_status *s, const FloatFmt *f);
784 -
785 -#define parts_sqrt(A, S, F) \
786 - PARTS_GENERIC_64_128(sqrt, A)(A, S, F)
787 -
782 static bool parts64_round_to_int_normal(FloatParts64 *a, FloatRoundMode rm,
783 int scale, int frac_size);
784 static bool parts128_round_to_int_normal(FloatParts128 *a, FloatRoundMode r,
@@ -4757,7 +4751,7 @@ float16 QEMU_FLATTEN float16_sqrt(float16 a, float_status *status)
4751 FloatParts64 p;
4752
4753 float16_unpack_canonical(&p, a, status);
4760 - parts_sqrt(&p, status, &float16_params);
4754 + parts64_sqrt(&p, status, &float16_params);
4755 return float16_round_pack_canonical(&p, status);
4756 }
4757
@@ -4767,7 +4761,7 @@ soft_f32_sqrt(float32 a, float_status *status)
4761 FloatParts64 p;
4762
4763 float32_unpack_canonical(&p, a, status);
4770 - parts_sqrt(&p, status, &float32_params);
4764 + parts64_sqrt(&p, status, &float32_params);
4765 return float32_round_pack_canonical(&p, status);
4766 }
4767
@@ -4777,7 +4771,7 @@ soft_f64_sqrt(float64 a, float_status *status)
4771 FloatParts64 p;
4772
4773 float64_unpack_canonical(&p, a, status);
4780 - parts_sqrt(&p, status, &float64_params);
4774 + parts64_sqrt(&p, status, &float64_params);
4775 return float64_round_pack_canonical(&p, status);
4776 }
4777
@@ -4840,7 +4834,7 @@ float64 float64r32_sqrt(float64 a, float_status *status)
4834 FloatParts64 p;
4835
4836 float64_unpack_canonical(&p, a, status);
4843 - parts_sqrt(&p, status, &float64_params);
4837 + parts64_sqrt(&p, status, &float64_params);
4838 return float64r32_round_pack_canonical(&p, status);
4839 }
4840
@@ -4849,7 +4843,7 @@ bfloat16 QEMU_FLATTEN bfloat16_sqrt(bfloat16 a, float_status *status)
4843 FloatParts64 p;
4844
4845 bfloat16_unpack_canonical(&p, a, status);
4852 - parts_sqrt(&p, status, &bfloat16_params);
4846 + parts64_sqrt(&p, status, &bfloat16_params);
4847 return bfloat16_round_pack_canonical(&p, status);
4848 }
4849
@@ -4858,7 +4852,7 @@ float128 QEMU_FLATTEN float128_sqrt(float128 a, float_status *status)
4852 FloatParts128 p;
4853
4854 float128_unpack_canonical(&p, a, status);
4861 - parts_sqrt(&p, status, &float128_params);
4855 + parts128_sqrt(&p, status, &float128_params);
4856 return float128_round_pack_canonical(&p, status);
4857 }
4858
@@ -4869,7 +4863,7 @@ floatx80 floatx80_sqrt(floatx80 a, float_status *s)
4863 if (!floatx80_unpack_canonical(&p, a, s)) {
4864 return floatx80_default_nan(s);
4865 }
4872 - parts_sqrt(&p, s, &floatx80_params[s->floatx80_rounding_precision]);
4866 + parts128_sqrt(&p, s, &floatx80_params[s->floatx80_rounding_precision]);
4867 return floatx80_round_pack_canonical(&p, s);
4868 }
4869