aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/generic
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2012-03-14 17:20:10 +0100
committerAndreas Jaeger <aj@suse.de>2012-03-14 17:20:10 +0100
commitc4814b6b3a2b4f264a461a27667a139387968ee1 (patch)
treee2e5aed10a4ab7861c357f3a88abf8ffbd22451b /sysdeps/generic
parent1e2405c8fa877d7cb3c06626c94356faaa7bd1e0 (diff)
downloadglibc-c4814b6b3a2b4f264a461a27667a139387968ee1.tar
glibc-c4814b6b3a2b4f264a461a27667a139387968ee1.tar.gz
glibc-c4814b6b3a2b4f264a461a27667a139387968ee1.tar.bz2
glibc-c4814b6b3a2b4f264a461a27667a139387968ee1.zip
Implement and use libc_feholdexcept_setround_53bit and libc_feupdateenv_53bit
so that double arithmetic in s_sin is done in 53 bit (without extend i386 double precision)
Diffstat (limited to 'sysdeps/generic')
-rw-r--r--sysdeps/generic/math_private.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/sysdeps/generic/math_private.h b/sysdeps/generic/math_private.h
index 777762dd33..be1e4d2314 100644
--- a/sysdeps/generic/math_private.h
+++ b/sysdeps/generic/math_private.h
@@ -370,6 +370,9 @@ extern void __docos (double __x, double __dx, double __v[]);
#define libc_feholdexcept_setroundl(e, r) \
do { feholdexcept (e); fesetround (r); } while (0)
+#define libc_feholdexcept_setround_53bit(e, r) \
+ libc_feholdexcept_setround (e, r)
+
#define libc_fetestexcept(e) fetestexcept (e)
#define libc_fetestexceptf(e) fetestexcept (e)
#define libc_fetestexceptl(e) fetestexcept (e)
@@ -382,6 +385,8 @@ extern void __docos (double __x, double __dx, double __v[]);
#define libc_feupdateenvf(e) (void) feupdateenv (e)
#define libc_feupdateenvl(e) (void) feupdateenv (e)
+#define libc_feupdateenv_53bit(e) libc_feupdateenv (e)
+
#define __nan(str) \
(__builtin_constant_p (str) && str[0] == '\0' ? NAN : __nan (str))
#define __nanf(str) \