glibc/sysdeps/powerpc
Gabriel F. T. Gomes c85e54ac6c Provide a C++ version of iseqsig (bug 22377)
In C++ mode, __MATH_TG cannot be used for defining iseqsig, because
__MATH_TG relies on __builtin_types_compatible_p, which is a C-only
builtin.  This is true when float128 is provided as an ABI-distinct type
from long double.

Moreover, the comparison macros from ISO C take two floating-point
arguments, which need not have the same type.  Choosing what underlying
function to call requires evaluating the formats of the arguments, then
selecting which is wider.  The macro __MATH_EVAL_FMT2 provides this
information, however, only the type of the macro expansion is relevant
(actually evaluating the expression would be incorrect).

This patch provides a C++ version of iseqsig, in which only the type of
__MATH_EVAL_FMT2 (__typeof or decltype) is used as a template parameter
for __iseqsig_type.  This function calls the appropriate underlying
function.

Tested for powerpc64le and x86_64.

	[BZ #22377]
	* math/Makefile [C++] (tests): Add test for iseqsig.
	* math/math.h [C++] (iseqsig): New implementation, which does
	not rely on __MATH_TG/__builtin_types_compatible_p.
	* math/test-math-iseqsig.cc: New file.
	* sysdeps/powerpc/powerpc64le/Makefile
	(CFLAGS-test-math-iseqsig.cc): New variable.
2017-12-19 23:26:59 -02:00
..
bits Add _Float64x function aliases. 2017-11-27 14:16:47 +00:00
fpu powerpc: Update ulps 2017-12-16 14:04:14 +05:30
nofpu Use fabs(f/l) rather than __fabs 2017-09-29 18:54:24 +01:00
nptl Add elision tunables 2017-12-05 17:48:48 -02:00
power4 Revert exp reimplementation (causes test failures). 2017-12-19 18:11:37 +00:00
power5+/fpu Use libm_alias_float for powerpc. 2017-12-05 00:26:26 +00:00
power6
power7/fpu Use libm_alias_float for powerpc. 2017-12-05 00:26:26 +00:00
powerpc32 powerpc: POWER8 memcpy optimization for cached memory 2017-12-11 17:39:42 -02:00
powerpc64 powerpc: st{r,p}cpy optimization for aligned strings 2017-12-15 10:55:58 +05:30
powerpc64le Provide a C++ version of iseqsig (bug 22377) 2017-12-19 23:26:59 -02:00
soft-fp
sys/platform
abort-instr.h
atomic-machine.h
cpu-features.c powerpc: POWER8 memcpy optimization for cached memory 2017-12-11 17:39:42 -02:00
cpu-features.h powerpc: POWER8 memcpy optimization for cached memory 2017-12-11 17:39:42 -02:00
dl-procinfo.c powerpc: POWER8 memcpy optimization for cached memory 2017-12-11 17:39:42 -02:00
dl-procinfo.h
dl-tls.c
dl-tls.h
dl-tunables.list powerpc: POWER8 memcpy optimization for cached memory 2017-12-11 17:39:42 -02:00
ffs.c
fpu_control.h
gccframe.h
hwcapinfo.c
hwcapinfo.h
ifunc-sel.h
Implies
jmpbuf-offsets.h
jmpbuf-unwind.h
ldsodefs.h powerpc: POWER8 memcpy optimization for cached memory 2017-12-11 17:39:42 -02:00
libc-tls.c
locale-defines.sym
longjmp.c
machine-gmon.h
Makefile
math-tests.h
memusage.h
mod-tlsopt-powerpc.c
mp_clz_tab.c
novmx-longjmp.c
novmx-sigjmp.c
novmxsetjmp.h
preconfigure Remove --with-fp / --without-fp. 2017-12-12 13:56:47 +00:00
rtld-global-offsets.sym
sched_cpucount.c
sigjmp.c
sotruss-lib.c
stackinfo.h
sysdep.h Add elision tunables 2017-12-05 17:48:48 -02:00
test-arith.c
test-arithf.c
test-get_hwcap-static.c
test-get_hwcap.c
test-gettimebase.c
tls-macros.h
tst-set_ppr.c
tst-stack-align.h
tst-tlsifunc-static.c
tst-tlsifunc.c
tst-tlsopt-powerpc.c
Versions