From: Adhemerval Zanella Date: Thu, 23 Oct 2025 17:30:15 +0000 (-0300) Subject: Replace count_leading_zeros with stdc_leading_zeros X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8d0ae4db79a0e54396a9c406f1776e9f7bb95794;p=thirdparty%2Fglibc.git Replace count_leading_zeros with stdc_leading_zeros Checked on x86_64-linux-gnu and aarch64-linux-gnu. --- diff --git a/stdlib/divmod_1.c b/stdlib/divmod_1.c index f5030420fc..b91ab9e593 100644 --- a/stdlib/divmod_1.c +++ b/stdlib/divmod_1.c @@ -25,6 +25,7 @@ along with the GNU MP Library; see the file COPYING.LIB. If not, see . */ #include +#include #include "gmp-impl.h" #include "longlong.h" @@ -62,9 +63,7 @@ mpn_divmod_1 (mp_ptr quot_ptr, if (UDIV_TIME > (2 * UMUL_TIME + 6) && (UDIV_TIME - (2 * UMUL_TIME + 6)) * dividend_size > UDIV_TIME) { - int normalization_steps; - - count_leading_zeros (normalization_steps, divisor_limb); + int normalization_steps = stdc_leading_zeros (divisor_limb); if (normalization_steps != 0) { mp_limb_t divisor_limb_inverted; @@ -144,9 +143,7 @@ mpn_divmod_1 (mp_ptr quot_ptr, { if (UDIV_NEEDS_NORMALIZATION) { - int normalization_steps; - - count_leading_zeros (normalization_steps, divisor_limb); + int normalization_steps = stdc_leading_zeros (divisor_limb); if (normalization_steps != 0) { divisor_limb <<= normalization_steps; diff --git a/stdlib/mod_1.c b/stdlib/mod_1.c index a4d81d4db0..74c1f6a521 100644 --- a/stdlib/mod_1.c +++ b/stdlib/mod_1.c @@ -22,6 +22,7 @@ along with the GNU MP Library; see the file COPYING.LIB. If not, see . */ #include +#include #include "gmp-impl.h" #include "longlong.h" @@ -58,9 +59,7 @@ mpn_mod_1 (mp_srcptr dividend_ptr, mp_size_t dividend_size, if (UDIV_TIME > (2 * UMUL_TIME + 6) && (UDIV_TIME - (2 * UMUL_TIME + 6)) * dividend_size > UDIV_TIME) { - int normalization_steps; - - count_leading_zeros (normalization_steps, divisor_limb); + int normalization_steps = stdc_leading_zeros (divisor_limb); if (normalization_steps != 0) { mp_limb_t divisor_limb_inverted; @@ -137,9 +136,7 @@ mpn_mod_1 (mp_srcptr dividend_ptr, mp_size_t dividend_size, { if (UDIV_NEEDS_NORMALIZATION) { - int normalization_steps; - - count_leading_zeros (normalization_steps, divisor_limb); + int normalization_steps = stdc_leading_zeros (divisor_limb); if (normalization_steps != 0) { divisor_limb <<= normalization_steps; diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c index f9572b9ebf..5814475e40 100644 --- a/stdlib/strtod_l.c +++ b/stdlib/strtod_l.c @@ -72,6 +72,7 @@ extern double ____strtod_l_internal (const char *, char **, int, locale_t); #include #include #include +#include /* The gmp headers need some configuration frobs. */ #define HAVE_ALLOCA 1 @@ -1247,7 +1248,7 @@ ____STRTOF_INTERNAL (const STRING_TYPE *nptr, STRING_TYPE **endptr, int group, } /* Determine how many bits of the result we already have. */ - count_leading_zeros (bits, num[numsize - 1]); + bits = stdc_leading_zeros (num[numsize - 1]); bits = numsize * BITS_PER_MP_LIMB - bits; /* Now we know the exponent of the number in base two. @@ -1465,7 +1466,8 @@ ____STRTOF_INTERNAL (const STRING_TYPE *nptr, STRING_TYPE **endptr, int group, |--- n ---| */ - count_leading_zeros (cnt, den[densize - 1]); + cnt = stdc_leading_zeros (den[densize - 1]); + if (cnt > 0) { @@ -1504,11 +1506,7 @@ ____STRTOF_INTERNAL (const STRING_TYPE *nptr, STRING_TYPE **endptr, int group, #define got_limb \ if (bits == 0) \ { \ - int cnt; \ - if (quot == 0) \ - cnt = BITS_PER_MP_LIMB; \ - else \ - count_leading_zeros (cnt, quot); \ + int cnt = stdc_leading_zeros (quot); \ exponent -= cnt; \ if (BITS_PER_MP_LIMB - cnt > MANT_DIG) \ { \ diff --git a/sysdeps/ieee754/dbl-64/dbl2mpn.c b/sysdeps/ieee754/dbl-64/dbl2mpn.c index af369cd38a..d69973419b 100644 --- a/sysdeps/ieee754/dbl-64/dbl2mpn.c +++ b/sysdeps/ieee754/dbl-64/dbl2mpn.c @@ -21,6 +21,7 @@ #include #include #include +#include /* Convert a `double' in IEEE754 standard double-precision format to a multi-precision integer representing the significand scaled up by its @@ -68,7 +69,7 @@ __mpn_extract_double (mp_ptr res_ptr, mp_size_t size, if (res_ptr[N - 1] != 0) { - count_leading_zeros (cnt, res_ptr[N - 1]); + cnt = stdc_leading_zeros (res_ptr[N - 1]); cnt -= NUM_LEADING_ZEROS; #if N == 2 res_ptr[N - 1] = res_ptr[1] << cnt @@ -82,7 +83,7 @@ __mpn_extract_double (mp_ptr res_ptr, mp_size_t size, } else { - count_leading_zeros (cnt, res_ptr[0]); + cnt = stdc_leading_zeros (res_ptr[0]); if (cnt >= NUM_LEADING_ZEROS) { res_ptr[N - 1] = res_ptr[0] << (cnt - NUM_LEADING_ZEROS); diff --git a/sysdeps/ieee754/ldbl-128/ldbl2mpn.c b/sysdeps/ieee754/ldbl-128/ldbl2mpn.c index 1179b1cd23..d3f3476d56 100644 --- a/sysdeps/ieee754/ldbl-128/ldbl2mpn.c +++ b/sysdeps/ieee754/ldbl-128/ldbl2mpn.c @@ -23,6 +23,7 @@ #include #include #include +#include /* Convert a `long double' in IEEE854 quad-precision format to a multi-precision integer representing the significand scaled up by its @@ -76,7 +77,7 @@ __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size, #if N == 2 if (res_ptr[N - 1] != 0) { - count_leading_zeros (cnt, res_ptr[N - 1]); + cnt = stdc_leading_zeros (res_ptr[N - 1]); cnt -= NUM_LEADING_ZEROS; res_ptr[N - 1] = res_ptr[N - 1] << cnt | (res_ptr[0] >> (BITS_PER_MP_LIMB - cnt)); @@ -85,7 +86,7 @@ __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size, } else { - count_leading_zeros (cnt, res_ptr[0]); + cnt = stdc_leading_zeros (res_ptr[0]); if (cnt >= NUM_LEADING_ZEROS) { res_ptr[N - 1] = res_ptr[0] << (cnt - NUM_LEADING_ZEROS); @@ -106,7 +107,7 @@ __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size, if (res_ptr[j] != 0) break; - count_leading_zeros (cnt, res_ptr[j]); + cnt = stdc_leading_zeros (res_ptr[j]); cnt -= NUM_LEADING_ZEROS; l = N - 1 - j; if (cnt < 0) diff --git a/sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c b/sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c index 795d7b4598..d91699c3d0 100644 --- a/sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c +++ b/sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c @@ -22,6 +22,7 @@ #include #include #include +#include /* Convert a `long double' in IBM extended format to a multi-precision integer representing the significand scaled up by its number of @@ -133,7 +134,7 @@ __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size, #if N == 2 if (res_ptr[N - 1] != 0) { - count_leading_zeros (cnt, res_ptr[N - 1]); + cnt = stdc_leading_zeros (res_ptr[N - 1]); cnt -= NUM_LEADING_ZEROS; res_ptr[N - 1] = res_ptr[N - 1] << cnt | (res_ptr[0] >> (BITS_PER_MP_LIMB - cnt)); @@ -142,7 +143,7 @@ __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size, } else { - count_leading_zeros (cnt, res_ptr[0]); + cnt = stdc_leading_zeros (res_ptr[0]); if (cnt >= NUM_LEADING_ZEROS) { res_ptr[N - 1] = res_ptr[0] << (cnt - NUM_LEADING_ZEROS); @@ -163,7 +164,7 @@ __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size, if (res_ptr[j] != 0) break; - count_leading_zeros (cnt, res_ptr[j]); + cnt = stdc_leading_zeros (res_ptr[j]); cnt -= NUM_LEADING_ZEROS; l = N - 1 - j; if (cnt < 0) diff --git a/sysdeps/ieee754/ldbl-96/ldbl2mpn.c b/sysdeps/ieee754/ldbl-96/ldbl2mpn.c index 07af9791f9..982f427380 100644 --- a/sysdeps/ieee754/ldbl-96/ldbl2mpn.c +++ b/sysdeps/ieee754/ldbl-96/ldbl2mpn.c @@ -22,6 +22,7 @@ #include #include #include +#include /* Convert a `long double' in IEEE854 standard double-precision format to a multi-precision integer representing the significand scaled up by its @@ -67,7 +68,7 @@ __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size, if (res_ptr[N - 1] != 0) { - count_leading_zeros (cnt, res_ptr[N - 1]); + cnt = stdc_leading_zeros (res_ptr[N - 1]); if (cnt != 0) { #if N == 2 @@ -82,7 +83,7 @@ __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size, } else { - count_leading_zeros (cnt, res_ptr[0]); + cnt = stdc_leading_zeros (res_ptr[0]); res_ptr[N - 1] = res_ptr[0] << cnt; res_ptr[0] = 0; *expt = LDBL_MIN_EXP - 1 - BITS_PER_MP_LIMB - cnt; diff --git a/sysdeps/wordsize-32/divdi3.c b/sysdeps/wordsize-32/divdi3.c index 015494a14f..387022ab14 100644 --- a/sysdeps/wordsize-32/divdi3.c +++ b/sysdeps/wordsize-32/divdi3.c @@ -19,6 +19,7 @@ #include #include #include +#include #if __WORDSIZE != 32 #error This is for 32-bit targets only @@ -113,7 +114,7 @@ __udivmoddi4 (UDWtype n, UDWtype d, UDWtype *rp) { /* 0q = nn / 0D */ - count_leading_zeros (bm, d0); + bm = stdc_leading_zeros (d0); if (bm != 0) { @@ -137,7 +138,7 @@ __udivmoddi4 (UDWtype n, UDWtype d, UDWtype *rp) if (d0 == 0) d0 = 1 / d0; /* Divide intentionally by zero. */ - count_leading_zeros (bm, d0); + bm = stdc_leading_zeros (d0); if (bm == 0) { @@ -202,7 +203,7 @@ __udivmoddi4 (UDWtype n, UDWtype d, UDWtype *rp) { /* 0q = NN / dd */ - count_leading_zeros (bm, d1); + bm = stdc_leading_zeros (d1); if (bm == 0) { /* From (n1 >= d1) /\ (the most significant bit of d1 is set), diff --git a/sysdeps/x86/ldbl2mpn.c b/sysdeps/x86/ldbl2mpn.c index d1dabab938..c41fb8da14 100644 --- a/sysdeps/x86/ldbl2mpn.c +++ b/sysdeps/x86/ldbl2mpn.c @@ -21,6 +21,7 @@ #include #include #include +#include /* Convert a `long double' in IEEE854 standard double-precision format to a multi-precision integer representing the significand scaled up by its @@ -73,7 +74,7 @@ __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size, if (res_ptr[N - 1] != 0) { - count_leading_zeros (cnt, res_ptr[N - 1]); + cnt = stdc_leading_zeros (res_ptr[N - 1]); if (cnt != 0) { #if N == 2 @@ -88,7 +89,7 @@ __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size, } else if (res_ptr[0] != 0) { - count_leading_zeros (cnt, res_ptr[0]); + cnt = stdc_leading_zeros (res_ptr[0]); res_ptr[N - 1] = res_ptr[0] << cnt; res_ptr[0] = 0; *expt = LDBL_MIN_EXP - 1 - BITS_PER_MP_LIMB - cnt;