glibc/sysdeps/i386/fpu
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
..
doasin.c
e_acos.S
e_acosf.S
e_acosh.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_acoshf.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_acoshl.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_acosl.c
e_asin.S
e_asinf.S
e_atan2.S
e_atan2f.S
e_atan2l.c
e_atanh.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_atanhf.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_atanhl.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_exp2.S
e_exp2l.S
e_exp10.S
e_exp10f.S
e_exp10l.S
e_exp.S
e_expl.S Use libm_alias_ldouble in sysdeps/i386/fpu. 2017-11-17 22:54:39 +00:00
e_fmod.S
e_fmodf.S
e_fmodl.c
e_hypot.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_hypotf.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_ilogb.S
e_ilogbf.S
e_ilogbl.S
e_log2.S
e_log2l.S
e_log10.S
e_log10f.S
e_log10l.S
e_log.S
e_logl.S
e_pow.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_powl.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_rem_pio2.c
e_remainder.S
e_remainderf.S
e_remainderl.S
e_scalb.S
e_scalbf.S
e_scalbl.S
e_sqrt.S
e_sqrtf.S
e_sqrtl.c
fclrexcpt.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fedisblxcpt.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
feenablxcpt.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fegetenv.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fegetexcept.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fegetmode.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fegetround.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
feholdexcpt.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fenv_private.h Fix i386 fenv_private.h float128 for 32-bit --with-fpmath=sse (bug 22902). 2018-02-28 21:55:51 +00:00
fesetenv.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fesetexcept.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fesetmode.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fesetround.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
feupdateenv.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fgetexcptflg.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fraiseexcpt.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fsetexcptflg.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ftestexcept.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
i386-math-asm.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
Implies
libm-test-ulps i386: Regenerate libm-test-ulps for for gcc 7 on i686 2018-01-06 22:11:40 +01:00
libm-test-ulps-name
math_private.h
math-tests.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mpatan2.c
mpatan.c
mpsqrt.c
s_asinh.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_asinhf.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_asinhl.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_atan.S Use libm_alias_double for i386. 2017-11-28 18:15:44 +00:00
s_atanf.S Use libm_alias_float for i386. 2017-11-29 00:10:35 +00:00
s_atanl.c Use libm_alias_ldouble in sysdeps/i386/fpu. 2017-11-17 22:54:39 +00:00
s_cbrt.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_cbrtf.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_cbrtl.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_ceil.S Use libm_alias_double for i386. 2017-11-28 18:15:44 +00:00
s_ceilf.S Use libm_alias_float for i386. 2017-11-29 00:10:35 +00:00
s_ceill.S Use libm_alias_ldouble in sysdeps/i386/fpu. 2017-11-17 22:54:39 +00:00
s_copysign.S Use libm_alias_double for i386. 2017-11-28 18:15:44 +00:00
s_copysignf.S Use libm_alias_float for i386. 2017-11-29 00:10:35 +00:00
s_copysignl.S Use libm_alias_ldouble in sysdeps/i386/fpu. 2017-11-17 22:54:39 +00:00
s_expm1.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_expm1f.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_expm1l.S
s_f32xaddf64.c Add narrowing add functions. 2018-02-10 02:08:43 +00:00
s_fabs.S Use libm_alias_double for i386. 2017-11-28 18:15:44 +00:00
s_fabsf.S Use libm_alias_float for i386. 2017-11-29 00:10:35 +00:00
s_fabsl.S Use libm_alias_ldouble in sysdeps/i386/fpu. 2017-11-17 22:54:39 +00:00
s_fdim.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_finite.S
s_finitef.S
s_finitel.S
s_floor.S Use libm_alias_double for i386. 2017-11-28 18:15:44 +00:00
s_floorf.S Use libm_alias_float for i386. 2017-11-29 00:10:35 +00:00
s_floorl.S Use libm_alias_ldouble in sysdeps/i386/fpu. 2017-11-17 22:54:39 +00:00
s_fmax.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_fmaxf.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_fmaxl.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_fmin.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_fminf.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_fminl.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_fpclassifyl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_frexp.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_frexpf.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_frexpl.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_isinfl.c
s_isnanl.c
s_llrint.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_llrintf.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_llrintl.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_log1p.S
s_log1pf.S
s_log1pl.S
s_logb.S Use libm_alias_double for i386. 2017-11-28 18:15:44 +00:00
s_logbf.S Use libm_alias_float for i386. 2017-11-29 00:10:35 +00:00
s_logbl.c Use libm_alias_ldouble in sysdeps/i386/fpu. 2017-11-17 22:54:39 +00:00
s_lrint.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_lrintf.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_lrintl.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_nearbyint.S Use libm_alias_double for i386. 2017-11-28 18:15:44 +00:00
s_nearbyintf.S Use libm_alias_float for i386. 2017-11-29 00:10:35 +00:00
s_nearbyintl.S Use libm_alias_ldouble in sysdeps/i386/fpu. 2017-11-17 22:54:39 +00:00
s_nextafterl.c Use libm_alias_ldouble in sysdeps/i386/fpu. 2017-11-17 22:54:39 +00:00
s_nexttoward.c
s_nexttowardf.c
s_remquo.S Use libm_alias_double for i386. 2017-11-28 18:15:44 +00:00
s_remquof.S Use libm_alias_float for i386. 2017-11-29 00:10:35 +00:00
s_remquol.S Use libm_alias_ldouble in sysdeps/i386/fpu. 2017-11-17 22:54:39 +00:00
s_rint.S Use libm_alias_double for i386. 2017-11-28 18:15:44 +00:00
s_rintf.S Use libm_alias_float for i386. 2017-11-29 00:10:35 +00:00
s_rintl.c Use libm_alias_ldouble in sysdeps/i386/fpu. 2017-11-17 22:54:39 +00:00
s_scalbln.c
s_scalblnf.c
s_scalblnl.c
s_scalbn.S
s_scalbnf.S
s_scalbnl.S
s_significand.S
s_significandf.S
s_significandl.c
s_trunc.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_truncf.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_truncl.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
t_exp.c
Versions
w_sqrt_compat.c Add support for sqrt asm redirects 2018-03-15 19:21:35 +00:00
w_sqrt.c Add support for sqrt asm redirects 2018-03-15 19:21:35 +00:00