This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH 0/4] Use cleanups for rounding mode changes, v2
- From: Richard Henderson <rth at twiddle dot net>
- To: libc-alpha at sourceware dot org
- Date: Sat, 10 Mar 2012 09:25:55 -0800
- Subject: [PATCH 0/4] Use cleanups for rounding mode changes, v2
Updates following all the other patches that have already been applied.
The first patch has been updated to make use of include_next. The
inline versions of __isnan et al are no longer where they don't belong,
and further ifdeffery is avoided with the wordsize-64 subdir.
The third patch has had the macros renamed; I think _NOEX is better
than a very ambiguous _ENV. In addition the patches to fma are dropped.
The fourth patch is new, and provides for what I believe is better
optimization in the fma functions. By combining the exception test
with the feupdateenv we elide one stmxcsr instruction, which can't
be cheap. In addition, I believe that we can avoid calling
__feraiseexcept in most cases; this improvement probably ought to
be passed along to the real feupdateenv.
r~
Richard Henderson (4):
Make inline __isnan, __isinf_ns, __finite generic.
Convert libc_feholdexcept et al from macros to inline functions.
Create and use SET_RESTORE_ROUND{,_NOEX}{,F,L}.
Create and use libc_feupdateenv_test.
sysdeps/generic/math_private.h | 219 +++++++++++++++++----
sysdeps/ieee754/dbl-64/e_exp.c | 4 +-
sysdeps/ieee754/dbl-64/e_exp2.c | 97 +++++-----
sysdeps/ieee754/dbl-64/e_pow.c | 4 +-
sysdeps/ieee754/dbl-64/s_fma.c | 25 ++--
sysdeps/ieee754/dbl-64/s_fmaf.c | 12 +-
sysdeps/ieee754/dbl-64/s_sin.c | 8 +-
sysdeps/ieee754/dbl-64/s_tan.c | 4 +-
sysdeps/ieee754/dbl-64/wordsize-64/math_private.h | 31 +++
sysdeps/ieee754/flt-32/e_exp2f.c | 89 ++++-----
sysdeps/ieee754/flt-32/e_expf.c | 49 +++---
sysdeps/ieee754/flt-32/math_private.h | 31 +++
sysdeps/x86_64/fpu/math_private.h | 179 +++++++++--------
13 files changed, 487 insertions(+), 265 deletions(-)
create mode 100644 sysdeps/ieee754/dbl-64/wordsize-64/math_private.h
create mode 100644 sysdeps/ieee754/flt-32/math_private.h
--
1.7.7.6