]> git.ipfire.org Git - thirdparty/glibc.git/commit
Refactor x86_64 libm code forcing underflow exceptions.
authorJoseph Myers <joseph@codesourcery.com>
Thu, 24 Sep 2015 22:25:30 +0000 (22:25 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Thu, 24 Sep 2015 22:25:30 +0000 (22:25 +0000)
commitb2a64460ba9aca39e92731da67cc6344acb483bc
tree213e279495212accf939a0d03c10e16c131963cc
parent1a19b8894f93878f99025096ec1d3b6af7db6f78
Refactor x86_64 libm code forcing underflow exceptions.

This patch refactors code in sysdeps/x86_64/fpu that forces underflow
exceptions and closely follows corresponding i386 code to use common
macros in x86_64-math-asm.h for that purpose.  This is mainly about
keeping the code similar to the i386 code as far as possible, since
each macro apart from DEFINE_LDBL_MIN ends up used only once.  It
would be possible to do a further refactoring to share these macros
between i386 and x86_64 (with i386 using the fcomip / fucomip versions
when building for i686 and above), but I have no immediate plans to do
so.

Tested for x86_64.

* sysdeps/x86_64/fpu/x86_64-math-asm.h: New file.
* sysdeps/x86_64/fpu/e_exp2l.S: Include <x86_64-math-asm.h>.
(ldbl_min): Replace with use of DEFINE_LDBL_MIN.
(__ieee754_exp2l): Use LDBL_CHECK_FORCE_UFLOW_NONNEG_NAN.
* sysdeps/x86_64/fpu/e_expl.S: Include <x86_64-math-asm.h>.
[!USE_AS_EXPM1L] (cmin): Replace with use of DEFINE_LDBL_MIN.
(IEEE754_EXPL): Use LDBL_CHECK_FORCE_UFLOW_NONNEG.
ChangeLog
sysdeps/x86_64/fpu/e_exp2l.S
sysdeps/x86_64/fpu/e_expl.S
sysdeps/x86_64/fpu/x86_64-math-asm.h [new file with mode: 0644]