glibc/sysdeps
Wilco Dijkstra 1294b1892e Add support for sqrt asm redirects
This patch series cleans up the many uses of  __ieee754_sqrt(f/l) in GLIBC.
The goal is to enable GCC to do the inlining, and if this fails call the
__ieee754_sqrt function.  This is done by internally declaring sqrt with asm
redirects.  The compat symbols and sqrt wrappers need to disable the redirect.
The redirect is also disabled if there are already redirects defined when
using -ffinite-math-only.

All math functions (but not math tests, non-library code and libnldbl) are
built with -fno-math-errno which means GCC will typically inline sqrt as a
single instruction.  This means targets are no longer forced to add a special
inline for sqrt.

	* include/math.h (sqrt): Declare with asm redirect.
	(sqrtf): Likewise.
	(sqrtl): Likewise.
	(sqrtf128): Likewise.
	* Makeconfig: Add -fno-math-errno for libc/libm, but build testsuite,
	nonlib and libnldbl with -fmath-errno.
	* math/w_sqrt_compat.c: Define NO_MATH_REDIRECT.
	* math/w_sqrt_template.c: Likewise.
	* math/w_sqrtf_compat.c: Likewise.
	* math/w_sqrtl_compat.c: Likewise.
	* sysdeps/i386/fpu/w_sqrt.c: Likewise.
	* sysdeps/i386/fpu/w_sqrt_compat.c: Likewise.
	* sysdeps/generic/math-type-macros-float128.h: Remove math.h and
	complex.h.
2018-03-15 19:21:35 +00:00
..
aarch64 aarch64/strncmp: Use lsr instead of mov+lsr 2018-03-15 08:06:21 +05:30
alpha hurd: add gscope support 2018-03-11 13:06:33 +01:00
arm hurd: add gscope support 2018-03-11 13:06:33 +01:00
generic Add support for sqrt asm redirects 2018-03-15 19:21:35 +00:00
gnu Add TCP_FASTOPEN_KEY, TCP_FASTOPEN_NO_COOKIE from Linux 4.15. 2018-02-06 00:42:22 +00:00
hppa hurd: add gscope support 2018-03-11 13:06:33 +01:00
i386 Add support for sqrt asm redirects 2018-03-15 19:21:35 +00:00
ia64 hurd: add gscope support 2018-03-11 13:06:33 +01:00
ieee754 nldbl-compat.c: Include math.h before nldbl-compat.h. 2018-03-11 14:20:13 -04:00
init_array sysdeps/init_array: Add PREINIT_FUNCTION to crti.S 2018-01-29 10:22:26 -08:00
m68k hurd: add gscope support 2018-03-11 13:06:33 +01:00
mach Lookup the startup server through /servers/startup 2018-03-12 00:24:31 +01:00
microblaze hurd: add gscope support 2018-03-11 13:06:33 +01:00
mips hurd: add gscope support 2018-03-11 13:06:33 +01:00
nios2 hurd: add gscope support 2018-03-11 13:06:33 +01:00
nptl Refactor Linux ARCH_FORK implementation 2018-03-07 17:39:40 -03:00
posix Add missing start-of-file descriptive comment. 2018-03-06 09:21:04 +01:00
powerpc hurd: add gscope support 2018-03-11 13:06:33 +01:00
pthread hurd: fix timer_routines.c build 2018-02-27 01:15:39 +01:00
riscv hurd: add gscope support 2018-03-11 13:06:33 +01:00
s390 hurd: add gscope support 2018-03-11 13:06:33 +01:00
sh hurd: add gscope support 2018-03-11 13:06:33 +01:00
sparc hurd: add gscope support 2018-03-11 13:06:33 +01:00
tile hurd: add gscope support 2018-03-11 13:06:33 +01:00
unix alpha/clone.S: Invoke .set noat/.set at around explicit uses of $at 2018-03-10 15:17:18 -05:00
wordsize-32 Use libc_hidden_* for strtoumax (bug 15105). 2018-02-28 14:16:21 +00:00
wordsize-64 Use libc_hidden_* for strtoumax (bug 15105). 2018-02-28 14:16:21 +00:00
x86 Remove more old-compilers parts of sysdeps/x86/fpu/bits/mathinline.h. 2018-03-15 18:26:35 +00:00
x86_64 hurd: add gscope support 2018-03-11 13:06:33 +01:00