This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]