glibc/sysdeps/powerpc
Gabriel F. T. Gomes 42496114ec Provide a C++ version of iszero that does not use __MATH_TG (bug 21930)
When signaling nans are enabled (with -fsignaling-nans), the C++ version
of iszero uses the fpclassify macro, which is defined with __MATH_TG.
However, when support for float128 is available, __MATH_TG uses the
builtin __builtin_types_compatible_p, which is only available in C mode.

This patch refactors the C++ version of iszero so that it uses function
overloading to select between the floating-point types, instead of
relying on fpclassify and __MATH_TG.

Tested for powerpc64le, s390x, x86_64, and with build-many-glibcs.py.

	[BZ #21930]
	* math/math.h [defined __cplusplus && defined __SUPPORT_SNAN__]
	(iszero): New C++ implementation that does not use
	fpclassify/__MATH_TG/__builtin_types_compatible_p, when
	signaling nans are enabled, since __builtin_types_compatible_p
	is a C-only feature.
	* math/test-math-iszero.cc: When __HAVE_DISTINCT_FLOAT128 is
	defined, include ieee754_float128.h for access to the union and
	member ieee854_float128.ieee.
	[__HAVE_DISTINCT_FLOAT128] (do_test): Call check_float128.
	[__HAVE_DISTINCT_FLOAT128] (check_float128): New function.
	* sysdeps/powerpc/powerpc64le/Makefile [subdir == math]
	(CXXFLAGS-test-math-iszero.cc): Add -mfloat128 to the build
	options of test-math-zero on powerpc64le.
2017-08-28 15:22:37 -03:00
..
bits float128: Add signbit alternative for old compilers 2017-06-30 18:34:29 -03:00
fpu powerpc: Shrink ULPs for float128 2017-08-22 15:04:46 -03:00
nofpu Update arm, mips, powerpc-nofpu libm-test-ulps. 2017-02-17 23:10:01 +00:00
nptl Move shared pthread definitions to common headers 2017-05-09 17:49:17 -03:00
power4 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
power5+/fpu Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
power6 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
power7/fpu powerpc: Fix logbl on power7 [BZ# 21280] 2017-04-28 19:45:52 -03:00
powerpc32 Remove powerpc32 sqrt wrappers. 2017-08-25 11:33:04 +00:00
powerpc64 Do not use __ptr_t. 2017-08-08 17:14:49 +00:00
powerpc64le Provide a C++ version of iszero that does not use __MATH_TG (bug 21930) 2017-08-28 15:22:37 -03:00
soft-fp soft-fp: support after-rounding tininess detection. 2014-02-12 18:27:12 +00:00
sys/platform Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
abort-instr.h Update. 2002-09-15 18:31:23 +00:00
atomic-machine.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-procinfo.c powerpc: Update AT_HWCAP[2] bits 2017-06-23 09:10:32 -03:00
dl-procinfo.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-tls.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-tls.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ffs.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fpu_control.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
gccframe.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
hwcapinfo.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
hwcapinfo.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ifunc-sel.h Do not stack-protect ifunc resolvers [BZ #7065] 2016-12-26 10:08:41 +01:00
Implies PowerPC: unify math_ldbl.h implementations 2013-03-08 11:07:15 -03:00
jmpbuf-offsets.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
jmpbuf-unwind.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ldsodefs.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
libc-tls.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
locale-defines.sym powerpc: strcasestr optmization for power8 2016-04-22 19:23:13 +05:30
longjmp.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
machine-gmon.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Makefile tst-tlsopt-powerpc as a shared lib 2017-08-03 15:39:21 +09:30
math-tests.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
memusage.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
mod-tlsopt-powerpc.c tst-tlsopt-powerpc as a shared lib 2017-08-03 15:39:21 +09:30
mp_clz_tab.c Update. 2002-03-14 20:48:50 +00:00
novmx-longjmp.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
novmx-sigjmp.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
novmxsetjmp.h Remove __need macros from signal.h. 2017-05-20 19:04:43 -04:00
preconfigure powerpc64le: Create divergent sysdep directory for powerpc64le. 2017-04-28 14:17:57 -03:00
rtld-global-offsets.sym PowerPC: Define AT_HWCAP2 bits and AT_HWCAP2 handling for POWER8. 2013-06-28 16:52:49 -05:00
sched_cpucount.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sigjmp.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sotruss-lib.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
stackinfo.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sysdep.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-arith.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-arithf.c
test-get_hwcap-static.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
test-get_hwcap.c powerpc: Convert tests to the new support test-driver 2017-02-21 14:00:00 -03:00
test-gettimebase.c powerpc: Convert tests to the new support test-driver 2017-02-21 14:00:00 -03:00
tls-macros.h Split tls-macros.h in sysdeps directories. 2012-07-19 17:04:04 -03:00
tst-set_ppr.c Miscellaneous low-risk changes preparing for _ISOMAC testsuite. 2017-03-01 20:32:50 -05:00
tst-stack-align.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-tlsifunc-static.c powerpc: Fix float128 IFUNC relocations [BZ #21707] 2017-07-17 17:49:26 -03:00
tst-tlsifunc.c powerpc: Fix float128 IFUNC relocations [BZ #21707] 2017-07-17 17:49:26 -03:00
tst-tlsopt-powerpc.c tst-tlsopt-powerpc as a shared lib 2017-08-03 15:39:21 +09:30
Versions Add femode_t functions. 2016-09-07 16:40:09 +00:00