about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog286
1 files changed, 286 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index a5cbdee0fa..5dd550cba9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,289 @@
+2011-10-12  Ulrich Drepper  <drepper@gmail.com>
+
+	Add integration with gcc's -ffinite-math-only and optimize wrapper
+	functions in libm.
+	* Versions.def: Define GLIBC_2.15 version for libm.
+	* math/Makefile (headers): Add bits/math-finite.h.
+	* math/bits/math-finite.h: New file.
+	* sysdeps/ia64/fpu/bits/math-finite.h: New file.
+	* math/Versions [libm] (GLIBC_2.15): Export __*_finite symbols.
+	* math/e_acoshl.c: Add __*_finite alias.
+	* math/e_acosl.c: Likewise.
+	* math/e_asinl.c: Likewise.
+	* math/e_atan2l.c: Likewise.
+	* math/e_atanhl.c: Likewise.
+	* math/e_coshl.c: Likewise.
+	* math/e_exp10.c: Likewise.
+	* math/e_exp10f.c: Likewise.
+	* math/e_exp10l.c: Likewise.
+	* math/e_exp2l.c: Likewise.
+	* math/e_fmodl.c: Likewise.
+	* math/e_gammal_r.c: Likewise.
+	* math/e_hypotl.c: Likewise.
+	* math/e_j0l.c: Likewise.
+	* math/e_j1l.c: Likewise.
+	* math/e_jnl.c: Likewise.
+	* math/e_lgammal_r.c: Likewise.
+	* math/e_log10l.c: Likewise.
+	* math/e_log2l.c: Likewise.
+	* math/e_logl.c: Likewise.
+	* math/e_powl.c: Likewise.
+	* math/e_sinhl.c: Likewise.
+	* math/e_sqrtl.c: Likewise.
+	* math/e_scalb.c: Completely rewritten and optimized.
+	* math/e_scalbf.c: Likewise.
+	* math/e_scalbl.c: Likewise.
+	* math/w_acos.c: Likewise.
+	* math/w_acosf.c: Likewise.
+	* math/w_acosl.c: Likewise.
+	* math/w_acosh.c: Likewise.
+	* math/w_acoshf.c: Likewise.
+	* math/w_acoshl.c: Likewise.
+	* math/w_asin.c: Likewise.
+	* math/w_asinf.c: Likewise.
+	* math/w_asinl.c: Likewise.
+	* math/w_atan2.c: Likewise.
+	* math/w_atan2f.c: Likewise.
+	* math/w_atan2l.c: Likewise.
+	* math/w_atanh.c: Likewise.
+	* math/w_atanhf.c: Likewise.
+	* math/w_atanhl.c: Likewise.
+	* math/w_exp10.c: Likewise.
+	* math/w_exp10f.c: Likewise.
+	* math/w_exp10l.c: Likewise.
+	* math/w_fmod.c: Likewise.
+	* math/w_fmodf.c: Likewise.
+	* math/w_fmodl.c: Likewise.
+	* math/w_j0.c: Likewise.
+	* math/w_j0f.c: Likewise.
+	* math/w_j0l.c: Likewise.
+	* math/w_j1.c: Likewise.
+	* math/w_j1f.c: Likewise.
+	* math/w_j1l.c: Likewise.
+	* math/w_jn.c: Likewise.
+	* math/w_jnf.c: Likewise.
+	* math/w_log.c: Likewise.
+	* math/w_logf.c: Likewise.
+	* math/w_logl.c: Likewise.
+	* math/w_log10.c: Likewise.
+	* math/w_log10f.c: Likewise.
+	* math/w_log10l.c: Likewise.
+	* math/w_log2.c: Likewise.
+	* math/w_log2f.c: Likewise.
+	* math/w_log2l.c: Likewise.
+	* math/w_pow.c: Likewise.
+	* math/w_powf.c: Likewise.
+	* math/w_powl.c: Likewise.
+	* math/w_remainder.c: Likewise.
+	* math/w_remainderf.c: Likewise.
+	* math/w_remainderl.c: Likewise.
+	* math/w_scalb.c: Likewise.
+	* math/w_scalbf.c: Likewise.
+	* math/w_scalbl.c: Likewise.
+	* math/w_sqrt.c: Likewise.
+	* math/w_sqrtf.c: Likewise.
+	* math/w_sqrtl.c: Likewise.
+	* math/math.h: Define __MATH_DECLARE_LDOUBLE if long double functions
+	are declared.  Include <bits/math-finite.h> if -ffinite-math-only is
+	used.
+	* math/math_private.h: Declare __kernel_standard_f.
+	* math/w_cosh.c: Remove cruft and optimize a bit.
+	* math/w_coshf.c: Likewise.
+	* math/w_coshl.c: Likewise.
+	* math/w_exp2.c: Likewise.
+	* math/w_exp2f.c: Likewise.
+	* math/w_exp2l.c: Likewise.
+	* math/w_hypot.c: Likewise.
+	* math/w_hypotf.c: Likewise.
+	* math/w_hypotl.c: Likewise.
+	* math/w_lgamma.c: Likewise.
+	* math/w_lgamma_r.c: Likewise.
+	* math/w_lgammaf.c: Likewise.
+	* math/w_lgammaf_r.c: Likewise.
+	* math/w_lgammal.c: Likewise.
+	* math/w_lgammal_r.c: Likewise.
+	* math/w_sinh.c: Likewise.
+	* math/w_sinhf.c: Likewise.
+	* math/w_sinhl.c: Likewise.
+	* math/w_tgamma.c: Likewise.
+	* math/w_tgammaf.c: Likewise.
+	* math/w_tgammal.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_atanh.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_atanhf.c: Likewise.
+	* sysdeps/i386/fpu/e_acos.S: Add __*_finite alias.
+	Minor optimizations.  Pretty printing.  Remove cruft.
+	* sysdeps/i386/fpu/e_acosf.S: Likewise.
+	* sysdeps/i386/fpu/e_acosh.S: Likewise.
+	* sysdeps/i386/fpu/e_acoshf.S: Likewise.
+	* sysdeps/i386/fpu/e_acoshl.S: Likewise.
+	* sysdeps/i386/fpu/e_acosl.c: Likewise.
+	* sysdeps/i386/fpu/e_asin.S: Likewise.
+	* sysdeps/i386/fpu/e_asinf.S: Likewise.
+	* sysdeps/i386/fpu/e_atan2.S: Likewise.
+	* sysdeps/i386/fpu/e_atan2f.S: Likewise.
+	* sysdeps/i386/fpu/e_atan2l.c: Likewise.
+	* sysdeps/i386/fpu/e_atanh.S: Likewise.
+	* sysdeps/i386/fpu/e_atanhf.S: Likewise.
+	* sysdeps/i386/fpu/e_atanhl.S: Likewise.
+	* sysdeps/i386/fpu/e_exp10.S: Likewise.
+	* sysdeps/i386/fpu/e_exp10f.S: Likewise.
+	* sysdeps/i386/fpu/e_exp10l.S: Likewise.
+	* sysdeps/i386/fpu/e_exp2.S: Likewise.
+	* sysdeps/i386/fpu/e_exp2f.S: Likewise.
+	* sysdeps/i386/fpu/e_exp2l.S: Likewise.
+	* sysdeps/i386/fpu/e_fmod.S: Likewise.
+	* sysdeps/i386/fpu/e_fmodf.S: Likewise.
+	* sysdeps/i386/fpu/e_fmodl.c: Likewise.
+	* sysdeps/i386/fpu/e_hypot.S: Likewise.
+	* sysdeps/i386/fpu/e_hypotf.S: Likewise.
+	* sysdeps/i386/fpu/e_log.S: Likewise.
+	* sysdeps/i386/fpu/e_log10.S: Likewise.
+	* sysdeps/i386/fpu/e_log10f.S: Likewise.
+	* sysdeps/i386/fpu/e_log10l.S: Likewise.
+	* sysdeps/i386/fpu/e_log2.S: Likewise.
+	* sysdeps/i386/fpu/e_log2f.S: Likewise.
+	* sysdeps/i386/fpu/e_log2l.S: Likewise.
+	* sysdeps/i386/fpu/e_logf.S: Likewise.
+	* sysdeps/i386/fpu/e_logl.S: Likewise.
+	* sysdeps/i386/fpu/e_pow.S: Likewise.
+	* sysdeps/i386/fpu/e_powf.S: Likewise.
+	* sysdeps/i386/fpu/e_powl.S: Likewise.
+	* sysdeps/i386/fpu/e_remainder.S: Likewise.
+	* sysdeps/i386/fpu/e_remainderf.S: Likewise.
+	* sysdeps/i386/fpu/e_remainderl.S: Likewise.
+	* sysdeps/i386/fpu/e_scalb.S: Likewise.
+	* sysdeps/i386/fpu/e_scalbf.S: Likewise.
+	* sysdeps/i386/fpu/e_scalbl.S: Likewise.
+	* sysdeps/i386/fpu/e_sqrt.S: Likewise.
+	* sysdeps/i386/fpu/e_sqrtf.S: Likewise.
+	* sysdeps/i386/fpu/e_sqrtl.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_acosh.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_asin.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_atan2.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_cosh.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_exp2.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_fmod.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_gamma_r.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_hypot.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_j0.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_j1.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_jn.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_lgamma_r.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_log.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_log10.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_log2.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_pow.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_remainder.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_sinh.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_sqrt.c: Likewise.
+	* sysdeps/ieee754/dbl-64/halfulp.c: Likewise.
+	* sysdeps/ieee754/dbl-64/s_asinh.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_acosf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_acoshf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_asinf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_atan2f.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_coshf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_exp2f.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_fmodf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_gammaf_r.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_hypotf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_j0f.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_j1f.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_jnf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_lgammaf_r.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_log10f.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_log2f.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_logf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_powf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_remainderf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_sinhf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_sqrtf.c: Likewise.
+	* sysdeps/ieee754/flt-32/s_asinhf.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_acoshl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_acosl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_asinl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_atan2l.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_atanhl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_coshl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_fmodl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_gammal_r.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_hypotl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_j0l.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_j1l.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_jnl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_lgammal_r.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_log10l.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_log2l.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_logl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_powl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_remainderl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_sinhl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_acoshl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_acosl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_asinl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_atan2l.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_atanhl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_coshl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_fmodl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_hypotl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_log10l.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_log2l.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_logl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_powl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_remainderl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_sinhl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_acoshl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_asinl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_atan2l.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_atanhl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_coshl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_gammal_r.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_hypotl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_j0l.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_j1l.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_jnl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_lgammal_r.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_remainderl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_sinhl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/s_asinhl.c: Likewise.
+	* sysdeps/powerpc/fpu/e_hypot.c: Likewise.
+	* sysdeps/powerpc/fpu/e_hypotf.c: Likewise.
+	* sysdeps/powerpc/fpu/e_sqrt.c: Likewise.
+	* sysdeps/powerpc/fpu/e_sqrtf.c: Likewise.
+	* sysdeps/powerpc/powerpc64/fpu/e_sqrt.c: Likewise.
+	* sysdeps/powerpc/powerpc64/fpu/e_sqrtf.c: Likewise.
+	* sysdeps/s390/fpu/e_sqrt.c: Likewise.
+	* sysdeps/s390/fpu/e_sqrtf.c: Likewise.
+	* sysdeps/s390/fpu/e_sqrtl.c: Likewise.
+	* sysdeps/sparc/sparc32/e_sqrt.c: Likewise.
+	* sysdeps/sparc/sparc64/fpu/e_sqrtl.c: Likewise.
+	* sysdeps/x86_64/fpu/e_exp2l.S: Likewise.
+	* sysdeps/x86_64/fpu/e_fmodl.S: Likewise.
+	* sysdeps/x86_64/fpu/e_log10l.S: Likewise.
+	* sysdeps/x86_64/fpu/e_log2l.S: Likewise.
+	* sysdeps/x86_64/fpu/e_logl.S: Likewise.
+	* sysdeps/x86_64/fpu/e_powl.S: Likewise.
+	* sysdeps/x86_64/fpu/e_remainderl.S: Likewise.
+	* sysdeps/x86_64/fpu/e_scalbl.S: Likewise.
+	* sysdeps/x86_64/fpu/e_sqrt.c: Likewise.  Fix parameter order
+	* sysdeps/x86_64/fpu/e_sqrtf.c: Likewise.
+	* sysdeps/x86_64/fpu/math_private.h (__isnan): Cast d parameter.
+	(__isnanf): Likewise.
+	(__isinf_ns): Likewise.
+	(__isinf_nsf): Likewise.
+	(__finite): Likewise.
+	(__finitef): Likewise.
+	(__ieee754_sqrt): Define as macro.
+	(__ieee754_sqrtf): Define as macro.
+	(__ieee754_sqrtl): Define as macro.
+	* sysdeps/x86_64/fpu/bits/fenv.h (feraiseexcept): Add partially
+	inlined copy.
+	* sysdeps/x86_64/fpu/bits/mathinline.h: Make use of
+	__FINITE_MATH_ONLY__ consistent.
+	* sysdeps/ieee754/k_standard.c (__kernel_standard_f): New function.
+
 2011-10-10  Andreas Schwab  <schwab@linux-m68k.org>
 
 	* inet/getnetgrent_r.c (nscd_getnetgrent): Use __rawmemchr instead