glibc/sysdeps/m68k/m680x0/fpu
Szabolcs Nagy a502c5294b Remove the error handling wrapper from pow
Introduce new pow symbol version that doesn't do SVID compatible error
handling.  The standard errno and fp exception based error handling is
inline in the new code and does not have significant overhead.

The wrapper is disabled for sysdeps/ieee754/dbl-64 by using empty
w_pow.c and enabled for targets with their own pow implementation or
ifunc dispatch on __ieee754_pow by including math/w_pow.c.

The compatibility symbol version still uses the wrapper with SVID error
handling around the new code.  There is no new symbol version nor
compatibility code on !LIBM_SVID_COMPAT targets (e.g. riscv).

On targets where previously powl was an alias of pow, now it points to
the compatibility symbol with the wrapper, because it still need the
SVID compatible error handling.  This affects NO_LONG_DOUBLE (e.g. arm)
and LONG_DOUBLE_COMPAT (e.g. alpha) targets as well.

The __pow_finite symbol is now an alias of pow.  Both __pow_finite and
pow set errno and thus not const functions.

The ia64 asm is changed so the compat and new symbol versions map to the
same address.

On x86_64 #include <math.h> was added before macro definitions that
may affect that header.

Tested with build-many-glibcs.py.

	* math/Versions (GLIBC_2.29): Add pow.
	* math/w_pow_compat.c (__pow_compat): Change to versioned compat
	symbol.
	* math/w_pow.c: New file.
	* sysdeps/i386/fpu/w_pow.c: New file.
	* sysdeps/ia64/fpu/e_pow.S: Add versioned symbols.
	* sysdeps/ieee754/dbl-64/e_pow.c (__ieee754_pow): Rename to __pow
	and add necessary aliases.
	* sysdeps/ieee754/dbl-64/w_pow.c: New file.
	* sysdeps/m68k/m680x0/fpu/w_pow.c: New file.
	* sysdeps/mach/hurd/i386/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Update.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Update.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Update.
	* sysdeps/x86_64/fpu/multiarch/e_pow-fma.c (__ieee754_pow): Rename to
	__pow.
	* sysdeps/x86_64/fpu/multiarch/e_pow-fma4.c (__ieee754_pow): Likewise.
	* sysdeps/x86_64/fpu/multiarch/e_pow.c (__ieee754_pow): Likewise.
	* sysdeps/x86_64/fpu/multiarch/w_pow.c: New file.
2018-11-21 09:58:36 +00:00
..
bits Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
branred.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
doasin.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
dosincos.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_acos.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_acosf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_acosl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_asin.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_asinf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_asinl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_atan2.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_atan2f.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_atan2l.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_atanh.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_atanhf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_atanhl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_cosh.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_coshf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_coshl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_exp2.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_exp2f_data.c Optimized generic expf and exp2f with wrappers 2017-09-25 10:44:39 +01:00
e_exp2f.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_exp2l.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_exp10.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_exp10f.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_exp10l.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_exp_data.c Add new exp and exp2 implementations 2018-09-05 16:22:00 +01:00
e_exp.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_expf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_expl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_fmod.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_fmodf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_fmodl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_ilogb.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_ilogbf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_ilogbl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_log2_data.c Add new log2 implementation 2018-09-12 17:36:33 +01:00
e_log2.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_log2f_data.c New generic log2f 2017-09-29 17:17:41 +01:00
e_log2f.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_log2l.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_log10.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_log10f.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_log10l.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_log_data.c Add new log implementation 2018-09-12 17:33:30 +01:00
e_log.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_logf_data.c New generic logf 2017-09-29 11:46:46 +01:00
e_logf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_logl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_pow_log_data.c Add new pow implementation 2018-09-19 10:04:51 +01:00
e_pow.c Rename all __ieee754_sqrt(f/l) calls to sqrt(f/l) 2018-03-15 19:21:36 +00:00
e_powf_log2_data.c New generic powf 2017-09-29 17:30:53 +01:00
e_powf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_powl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_rem_pio2l.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_remainder.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_remainderf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_remainderl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_scalb.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_scalbf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_scalbl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_sinh.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_sinhf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_sinhl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_sqrt.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_sqrtf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
e_sqrtl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
fraiseexcpt.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
k_cosl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
k_rem_pio2.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
k_sinl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
k_tanf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
k_tanl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
libm-test-ulps Remove very old libm-test-ulps entries. 2017-01-20 23:58:49 +00:00
libm-test-ulps-name Do not hardcode platform names in manual/libm-err-tab.pl (bug 14139). 2016-11-04 16:49:06 +00:00
math_err.c Add new exp and exp2 implementations 2018-09-05 16:22:00 +01:00
math_errf.c Optimized generic expf and exp2f with wrappers 2017-09-25 10:44:39 +01:00
math-barriers.h Move math_opt_barrier, math_force_eval to separate math-barriers.h. 2018-05-09 19:45:47 +00:00
mathimpl.h Revert m68k __ieee754_sqrt change 2018-03-16 14:25:41 +00:00
mpa.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
mpatan2.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
mpatan.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
mpsqrt.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
mptan.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
s_atan_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_atan.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_atanf.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_atanl.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_ccosh_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_ceil_template.c Use ceil functions not __ceil functions in glibc libm. 2018-09-17 20:42:06 +00:00
s_ceil.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_ceilf.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_ceill.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_cexp_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_cos_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_cos.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_cosf.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_cosl.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_csin_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_csinh_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_expm1_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_expm1.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_expm1f.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_expm1l.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_fabs_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_fabs.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_fabsf.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_fabsl.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_finite.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
s_finitef.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
s_finitel.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
s_floor_template.c Use floor functions not __floor functions in glibc libm. 2018-09-14 13:09:01 +00:00
s_floor.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_floorf.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_floorl.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_fpclassifyl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_frexp_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_frexp.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_frexpf.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_frexpl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_isinf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_isinff.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
s_isinfl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
s_isnan.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
s_isnanf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
s_isnanl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
s_llrint.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_llrintf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_llrintl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_log1p.c m68k: Reorganize log1p and significand implementations 2018-06-22 21:34:28 -03:00
s_log1pf.c m68k: Reorganize log1p and significand implementations 2018-06-22 21:34:28 -03:00
s_log1pl.c m68k: Reorganize log1p and significand implementations 2018-06-22 21:34:28 -03:00
s_logbl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
s_lrint_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_lrint.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_lrintf.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_lrintl.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_modf_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_modf.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_modff.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_modfl.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_nearbyint_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_nearbyint.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_nearbyintf.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_nearbyintl.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_nextafterl.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
s_remquo_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_remquo.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_remquof.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_remquol.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_rint_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_rint.c Use rint functions not __rint functions in glibc libm. 2018-09-14 13:10:39 +00:00
s_rintf.c Use rint functions not __rint functions in glibc libm. 2018-09-14 13:10:39 +00:00
s_rintl.c Use rint functions not __rint functions in glibc libm. 2018-09-14 13:10:39 +00:00
s_scalbln.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
s_scalblnf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
s_scalblnl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
s_scalbn.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_scalbnf.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
s_scalbnl.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
s_significand.c m68k: Reorganize log1p and significand implementations 2018-06-22 21:34:28 -03:00
s_significandf.c m68k: Reorganize log1p and significand implementations 2018-06-22 21:34:28 -03:00
s_significandl.c m68k: Reorganize log1p and significand implementations 2018-06-22 21:34:28 -03:00
s_sin_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_sin.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_sincos_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_sincos.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_sincosf_data.c Improve performance of sincosf 2018-08-10 17:34:39 +01:00
s_sincosf.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_sincosl.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_sinf.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_sinl.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_tan_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_tan.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_tanf.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_tanh_template.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_tanh.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_tanhf.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_tanhl.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_tanl.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_trunc_template.c Use trunc functions not __trunc functions in glibc libm. 2018-09-20 21:11:10 +00:00
s_trunc.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_truncf.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
s_truncl.c Rework m68k libm functions to use declare_mgen_alias. 2017-11-30 22:39:07 +00:00
sincos32.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
sincostab.c Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
w_exp2.c Remove the error handling wrapper from exp and exp2 2018-11-21 09:55:02 +00:00
w_exp2f.c Do not wrap expf and exp2f 2017-10-02 14:38:54 +01:00
w_exp.c Remove the error handling wrapper from exp and exp2 2018-11-21 09:55:02 +00:00
w_expf.c Do not wrap expf and exp2f 2017-10-02 14:38:54 +01:00
w_log2.c Remove the error handling wrapper from log2 2018-11-21 09:57:21 +00:00
w_log2f.c Do not wrap logf, log2f and powf 2017-10-02 14:39:38 +01:00
w_log.c Remove the error handling wrapper from log 2018-11-21 09:56:27 +00:00
w_logf.c Do not wrap logf, log2f and powf 2017-10-02 14:39:38 +01:00
w_pow.c Remove the error handling wrapper from pow 2018-11-21 09:58:36 +00:00
w_powf.c Do not wrap logf, log2f and powf 2017-10-02 14:39:38 +01:00