diff options
author | Joseph Myers <joseph@codesourcery.com> | 2018-09-05 11:53:35 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2018-09-05 11:53:35 +0000 |
commit | b9d8c47472d4acbd6b1be59c3731ecbfb790b5ce (patch) | |
tree | 26b9531d7e90ec482d45e0c7bea48eef9fc6aedc /sysdeps/generic | |
parent | 418d99e622be036f44980854d585531905abae21 (diff) | |
download | glibc-b9d8c47472d4acbd6b1be59c3731ecbfb790b5ce.zip glibc-b9d8c47472d4acbd6b1be59c3731ecbfb790b5ce.tar.gz glibc-b9d8c47472d4acbd6b1be59c3731ecbfb790b5ce.tar.bz2 |
Move float128 inlines from sysdeps/generic/math_private.h to include/math.h.
Continuing the cleanup of math_private.h, with a view to it becoming
the header for the APIs defined therein and not also a header with
inline variants of math.h APIs, this patch moves inline definitions of
__isinff128 and fabsf128 to include/math.h, so that any users of
math.h in glibc automatically get the optimized functions rather than
quietly missing them if they do not also include math_private.h.
Tested for x86_64 and x86, and with build-many-glibcs.py with GCC 6.
There are changes to installed stripped libc.so on configurations with
distinct _Float128, because of __printf_fp_l code that now gets the
__isinff128 inline where previously it called the out-of-line
function because of the lack of a math_private.h call. It seems
appropriate that this code does get the inline (as it would
automatically with GCC 7 and later when the built-in function is used)
rather than being the only place in glibc that does not.
* sysdeps/generic/math_private.h
[__HAVE_DISTINCT_FLOAT128 && !__GNUC_PREREQ (7, 0)] (__isinff128):
Move this inline function ....
[__HAVE_DISTINCT_FLOAT128] (fabsf128): And this one ....
* include/math.h [!_ISOMAC]: To here....
Diffstat (limited to 'sysdeps/generic')
-rw-r--r-- | sysdeps/generic/math_private.h | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/sysdeps/generic/math_private.h b/sysdeps/generic/math_private.h index 220367b..c79b65f 100644 --- a/sysdeps/generic/math_private.h +++ b/sysdeps/generic/math_private.h @@ -222,29 +222,6 @@ do { \ # undef _Mdouble_ #endif -#if __HAVE_DISTINCT_FLOAT128 - -/* __builtin_isinf_sign is broken in GCC < 7 for float128. */ -# if ! __GNUC_PREREQ (7, 0) -# include <ieee754_float128.h> -extern inline int -__isinff128 (_Float128 x) -{ - int64_t hx, lx; - GET_FLOAT128_WORDS64 (hx, lx, x); - lx |= (hx & 0x7fffffffffffffffLL) ^ 0x7fff000000000000LL; - lx |= -lx; - return ~(lx >> 63) & (hx >> 62); -} -# endif - -extern inline _Float128 -fabsf128 (_Float128 x) -{ - return __builtin_fabsf128 (x); -} -#endif - /* Prototypes for functions of the IBM Accurate Mathematical Library. */ |