diff options
author | Andreas Jaeger <aj@suse.de> | 2012-03-14 17:20:10 +0100 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2012-03-14 17:20:10 +0100 |
commit | c4814b6b3a2b4f264a461a27667a139387968ee1 (patch) | |
tree | e2e5aed10a4ab7861c357f3a88abf8ffbd22451b /sysdeps/generic/math_private.h | |
parent | 1e2405c8fa877d7cb3c06626c94356faaa7bd1e0 (diff) | |
download | glibc-c4814b6b3a2b4f264a461a27667a139387968ee1.tar.gz glibc-c4814b6b3a2b4f264a461a27667a139387968ee1.tar.xz 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/math_private.h')
-rw-r--r-- | sysdeps/generic/math_private.h | 5 |
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) \ |