about summary refs log tree commit diff
path: root/math
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-10-15 20:22:59 -0400
committerUlrich Drepper <drepper@gmail.com>2011-10-15 20:22:59 -0400
commitbcf01e6d800e837622ddbc851b42b55fa99e5636 (patch)
tree5df0ae9971331105fe53de872895abb68d8276a5 /math
parentba1a0d5938b53454a249d679ab90baf541cd91ad (diff)
downloadglibc-bcf01e6d800e837622ddbc851b42b55fa99e5636.tar.gz
glibc-bcf01e6d800e837622ddbc851b42b55fa99e5636.tar.xz
glibc-bcf01e6d800e837622ddbc851b42b55fa99e5636.zip
Optimize exp
Add __exp*_finite optimizations and rewrite some wrappers.
Diffstat (limited to 'math')
-rw-r--r--math/Versions1
-rw-r--r--math/bits/math-finite.h7
-rw-r--r--math/e_expl.c1
3 files changed, 9 insertions, 0 deletions
diff --git a/math/Versions b/math/Versions
index 66bf460261..09888510b1 100644
--- a/math/Versions
+++ b/math/Versions
@@ -196,5 +196,6 @@ libm {
     __sinh_finite; __sinhf_finite; __sinhl_finite;
     __sqrt_finite; __sqrtf_finite; __sqrtl_finite;
     __gamma_r_finite; __gammaf_r_finite; __gammal_r_finite;
+    __exp_finite; __expf_finite; __expl_finite;
   }
 }
diff --git a/math/bits/math-finite.h b/math/bits/math-finite.h
index c6b952736d..7443d26ad6 100644
--- a/math/bits/math-finite.h
+++ b/math/bits/math-finite.h
@@ -67,6 +67,13 @@ extern float coshf (float) __asm__ ("__coshf_finite");
 extern long double coshl (long double) __asm__ ("__coshl_finite");
 #endif
 
+/* exp.  */
+extern double exp (double) __asm__ ("__exp_finite");
+extern float expf (float) __asm__ ("__expf_finite");
+#ifdef __MATH_DECLARE_LDOUBLE
+extern long double expl (long double) __asm__ ("__expl_finite");
+#endif
+
 #ifdef __USE_GNU
 /* exp10.  */
 extern double exp10 (double) __asm__ ("__exp10_finite");
diff --git a/math/e_expl.c b/math/e_expl.c
index f9467c38ab..5ba6eb5847 100644
--- a/math/e_expl.c
+++ b/math/e_expl.c
@@ -9,6 +9,7 @@ __ieee754_expl (long double x)
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_expl, __expl_finite)
 
 stub_warning (expl)
 #include <stub-tag.h>