From bd8d53bb33eedd6db5d0a6ac6afafe78e4352bdf Mon Sep 17 00:00:00 2001 From: Wilco Dijkstra Date: Fri, 29 Sep 2017 18:54:24 +0100 Subject: Use fabs(f/l) rather than __fabs A few math functions still use __fabs(f/l) rather than fabs, which means they won't be inlined. Rename them so they are inlined. Also add -fno-builtin-fabsl to nofpu powerpc makefile to work around BZ #29253. * sysdeps/ieee754/dbl-64/e_lgamma_r.c (__ieee754_lgamma_r): Use fabs rather than __fabs. * sysdeps/ieee754/dbl-64/e_log10.c (__ieee754_log10): Likewise. * sysdeps/ieee754/dbl-64/e_log2.c (__ieee754_log2): Likewise. * sysdeps/ieee754/flt-32/e_lgammaf_r.c (__ieee754_lgammaf_r): Use fabsf rather than __fabsf. * sysdeps/ieee754/flt-32/e_log10f.c (__ieee754_log10f): Likewise. * sysdeps/ieee754/flt-32/e_log2f.c (__ieee754_log2f): Likewise. * sysdeps/ieee754/ldbl-128/e_lgammal_r.c (__ieee754_lgammal_r): Use fabsl rather than __fabsl. * sysdeps/ieee754/ldbl-128/e_log10l.c (__ieee754_log10l): Likewise. * sysdeps/ieee754/ldbl-128/e_log2l.c (__ieee754_log2l): Likewise. * sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c (__ieee754_lgammal_r): Use fabsl rather than __fabsl. * sysdeps/ieee754/ldbl-128ibm/e_log10l.c (__ieee754_log10l): Likewise. * sysdeps/ieee754/ldbl-128ibm/e_log2l.c (__ieee754_log2l): Likewise. * sysdeps/powerpc/nofpu/Makefile: Add -fno-builtin-fabsl for BZ #29253. --- ChangeLog | 20 ++++++++++++++++++++ sysdeps/ieee754/dbl-64/e_lgamma_r.c | 2 +- sysdeps/ieee754/dbl-64/e_log10.c | 2 +- sysdeps/ieee754/dbl-64/e_log2.c | 2 +- sysdeps/ieee754/flt-32/e_lgammaf_r.c | 2 +- sysdeps/ieee754/flt-32/e_log10f.c | 2 +- sysdeps/ieee754/ldbl-128/e_lgammal_r.c | 2 +- sysdeps/ieee754/ldbl-128/e_log10l.c | 2 +- sysdeps/ieee754/ldbl-128/e_log2l.c | 2 +- sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c | 2 +- sysdeps/ieee754/ldbl-128ibm/e_log10l.c | 2 +- sysdeps/ieee754/ldbl-128ibm/e_log2l.c | 2 +- sysdeps/powerpc/nofpu/Makefile | 3 +++ 13 files changed, 34 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index b8d2a3e00d..060f4cbcac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2017-09-29 Wilco Dijkstra + + * sysdeps/ieee754/dbl-64/e_lgamma_r.c + (__ieee754_lgamma_r): Use fabs rather than __fabs. + * sysdeps/ieee754/dbl-64/e_log10.c (__ieee754_log10): Likewise. + * sysdeps/ieee754/dbl-64/e_log2.c (__ieee754_log2): Likewise. + * sysdeps/ieee754/flt-32/e_lgammaf_r.c + (__ieee754_lgammaf_r): Use fabsf rather than __fabsf. + * sysdeps/ieee754/flt-32/e_log10f.c (__ieee754_log10f): Likewise. + * sysdeps/ieee754/flt-32/e_log2f.c (__ieee754_log2f): Likewise. + * sysdeps/ieee754/ldbl-128/e_lgammal_r.c + (__ieee754_lgammal_r): Use fabsl rather than __fabsl. + * sysdeps/ieee754/ldbl-128/e_log10l.c (__ieee754_log10l): Likewise. + * sysdeps/ieee754/ldbl-128/e_log2l.c (__ieee754_log2l): Likewise. + * sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c + (__ieee754_lgammal_r): Use fabsl rather than __fabsl. + * sysdeps/ieee754/ldbl-128ibm/e_log10l.c (__ieee754_log10l): Likewise. + * sysdeps/ieee754/ldbl-128ibm/e_log2l.c (__ieee754_log2l): Likewise. + * sysdeps/powerpc/nofpu/Makefile: Add -fno-builtin-fabsl for BZ #29253. + 2017-09-29 Wilco Dijkstra * math/bits/cmathcalls.h (cimag): Remove inline. diff --git a/sysdeps/ieee754/dbl-64/e_lgamma_r.c b/sysdeps/ieee754/dbl-64/e_lgamma_r.c index b5860d8a24..93eda99662 100644 --- a/sysdeps/ieee754/dbl-64/e_lgamma_r.c +++ b/sysdeps/ieee754/dbl-64/e_lgamma_r.c @@ -225,7 +225,7 @@ __ieee754_lgamma_r(double x, int *signgamp) if(hx<0) { if(__builtin_expect(ix>=0x43300000, 0)) /* |x|>=2**52, must be -integer */ - return __fabs (x)/zero; + return fabs (x)/zero; if (x < -2.0 && x > -28.0) return __lgamma_neg (x, signgamp); t = sin_pi(x); diff --git a/sysdeps/ieee754/dbl-64/e_log10.c b/sysdeps/ieee754/dbl-64/e_log10.c index dfb7d056ca..677cbc4df8 100644 --- a/sysdeps/ieee754/dbl-64/e_log10.c +++ b/sysdeps/ieee754/dbl-64/e_log10.c @@ -65,7 +65,7 @@ __ieee754_log10 (double x) if (hx < 0x00100000) { /* x < 2**-1022 */ if (__glibc_unlikely (((hx & 0x7fffffff) | lx) == 0)) - return -two54 / __fabs (x); /* log(+-0)=-inf */ + return -two54 / fabs (x); /* log(+-0)=-inf */ if (__glibc_unlikely (hx < 0)) return (x - x) / (x - x); /* log(-#) = NaN */ k -= 54; diff --git a/sysdeps/ieee754/dbl-64/e_log2.c b/sysdeps/ieee754/dbl-64/e_log2.c index 2f3da129f8..e4a6aff9a3 100644 --- a/sysdeps/ieee754/dbl-64/e_log2.c +++ b/sysdeps/ieee754/dbl-64/e_log2.c @@ -83,7 +83,7 @@ __ieee754_log2 (double x) if (hx < 0x00100000) { /* x < 2**-1022 */ if (__glibc_unlikely (((hx & 0x7fffffff) | lx) == 0)) - return -two54 / __fabs (x); /* log(+-0)=-inf */ + return -two54 / fabs (x); /* log(+-0)=-inf */ if (__glibc_unlikely (hx < 0)) return (x - x) / (x - x); /* log(-#) = NaN */ k -= 54; diff --git a/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c index 1b30dcd84d..b0baad6e14 100644 --- a/sysdeps/ieee754/flt-32/e_lgammaf_r.c +++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c @@ -160,7 +160,7 @@ __ieee754_lgammaf_r(float x, int *signgamp) } if(hx<0) { if(ix>=0x4b000000) /* |x|>=2**23, must be -integer */ - return __fabsf (x)/zero; + return fabsf (x)/zero; if (ix > 0x40000000 /* X < 2.0f. */ && ix < 0x41700000 /* X > -15.0f. */) return __lgamma_negf (x, signgamp); diff --git a/sysdeps/ieee754/flt-32/e_log10f.c b/sysdeps/ieee754/flt-32/e_log10f.c index 86dd9b3d96..7f1ffdad77 100644 --- a/sysdeps/ieee754/flt-32/e_log10f.c +++ b/sysdeps/ieee754/flt-32/e_log10f.c @@ -34,7 +34,7 @@ __ieee754_log10f(float x) k=0; if (hx < 0x00800000) { /* x < 2**-126 */ if (__builtin_expect((hx&0x7fffffff)==0, 0)) - return -two25/__fabsf (x); /* log(+-0)=-inf */ + return -two25/fabsf (x); /* log(+-0)=-inf */ if (__builtin_expect(hx<0, 0)) return (x-x)/(x-x); /* log(-#) = NaN */ k -= 25; x *= two25; /* subnormal number, scale up x */ diff --git a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c index a80c9eaf33..5c50e4616a 100644 --- a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c +++ b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c @@ -778,7 +778,7 @@ __ieee754_lgammal_r (_Float128 x, int *signgamp) q = -x; p = __floorl (q); if (p == q) - return (one / __fabsl (p - p)); + return (one / fabsl (p - p)); _Float128 halfp = p * L(0.5); if (halfp == __floorl (halfp)) *signgamp = -1; diff --git a/sysdeps/ieee754/ldbl-128/e_log10l.c b/sysdeps/ieee754/ldbl-128/e_log10l.c index c992f6e5ee..e8f33984f2 100644 --- a/sysdeps/ieee754/ldbl-128/e_log10l.c +++ b/sysdeps/ieee754/ldbl-128/e_log10l.c @@ -187,7 +187,7 @@ __ieee754_log10l (_Float128 x) /* Test for domain */ GET_LDOUBLE_WORDS64 (hx, lx, x); if (((hx & 0x7fffffffffffffffLL) | lx) == 0) - return (-1 / __fabsl (x)); /* log10l(+-0)=-inf */ + return (-1 / fabsl (x)); /* log10l(+-0)=-inf */ if (hx < 0) return (x - x) / (x - x); if (hx >= 0x7fff000000000000LL) diff --git a/sysdeps/ieee754/ldbl-128/e_log2l.c b/sysdeps/ieee754/ldbl-128/e_log2l.c index cf4a380f16..06bf04f5e3 100644 --- a/sysdeps/ieee754/ldbl-128/e_log2l.c +++ b/sysdeps/ieee754/ldbl-128/e_log2l.c @@ -181,7 +181,7 @@ __ieee754_log2l (_Float128 x) /* Test for domain */ GET_LDOUBLE_WORDS64 (hx, lx, x); if (((hx & 0x7fffffffffffffffLL) | lx) == 0) - return (-1 / __fabsl (x)); /* log2l(+-0)=-inf */ + return (-1 / fabsl (x)); /* log2l(+-0)=-inf */ if (hx < 0) return (x - x) / (x - x); if (hx >= 0x7fff000000000000LL) diff --git a/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c b/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c index f881b8c0a4..5b628bedc1 100644 --- a/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c +++ b/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c @@ -728,7 +728,7 @@ __ieee754_lgammal_r (long double x, int *signgamp) q = -x; p = __floorl (q); if (p == q) - return (one / __fabsl (p - p)); + return (one / fabsl (p - p)); long double halfp = p * 0.5L; if (halfp == __floorl (halfp)) *signgamp = -1; diff --git a/sysdeps/ieee754/ldbl-128ibm/e_log10l.c b/sysdeps/ieee754/ldbl-128ibm/e_log10l.c index 1fbfa48e13..62e3214ca4 100644 --- a/sysdeps/ieee754/ldbl-128ibm/e_log10l.c +++ b/sysdeps/ieee754/ldbl-128ibm/e_log10l.c @@ -189,7 +189,7 @@ __ieee754_log10l (long double x) xhi = ldbl_high (x); EXTRACT_WORDS64 (hx, xhi); if ((hx & 0x7fffffffffffffffLL) == 0) - return (-1.0L / __fabsl (x)); /* log10l(+-0)=-inf */ + return (-1.0L / fabsl (x)); /* log10l(+-0)=-inf */ if (hx < 0) return (x - x) / (x - x); if (hx >= 0x7ff0000000000000LL) diff --git a/sysdeps/ieee754/ldbl-128ibm/e_log2l.c b/sysdeps/ieee754/ldbl-128ibm/e_log2l.c index c820dacf08..1f8b6e9d7f 100644 --- a/sysdeps/ieee754/ldbl-128ibm/e_log2l.c +++ b/sysdeps/ieee754/ldbl-128ibm/e_log2l.c @@ -183,7 +183,7 @@ __ieee754_log2l (long double x) xhi = ldbl_high (x); EXTRACT_WORDS64 (hx, xhi); if ((hx & 0x7fffffffffffffffLL) == 0) - return (-1.0L / __fabsl (x)); /* log2l(+-0)=-inf */ + return (-1.0L / fabsl (x)); /* log2l(+-0)=-inf */ if (hx < 0) return (x - x) / (x - x); if (hx >= 0x7ff0000000000000LL) diff --git a/sysdeps/powerpc/nofpu/Makefile b/sysdeps/powerpc/nofpu/Makefile index 35517b63a1..ed163219be 100644 --- a/sysdeps/powerpc/nofpu/Makefile +++ b/sysdeps/powerpc/nofpu/Makefile @@ -29,4 +29,7 @@ CFLAGS-w_asinl_compat.c += -fno-builtin-fabsl CFLAGS-w_atanhl_compat.c += -fno-builtin-fabsl CFLAGS-w_j0l_compat.c += -fno-builtin-fabsl CFLAGS-w_j1l_compat.c += -fno-builtin-fabsl +CFLAGS-e_lgammal_r.c += -fno-builtin-fabsl +CFLAGS-e_log10l.c += -fno-builtin-fabsl +CFLAGS-e_log2l.c += -fno-builtin-fabsl endif -- cgit 1.4.1