about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-06-21 18:43:10 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-06-21 18:43:10 +0000
commitcb0937b299182e78307795081489ec1f148bdbd7 (patch)
tree32137f8b8dde65185697602763252a45e40e8472 /ChangeLog
parentfea1d8d67363c8b675a4c2533769ae12dc86efff (diff)
downloadglibc-cb0937b299182e78307795081489ec1f148bdbd7.tar.gz
glibc-cb0937b299182e78307795081489ec1f148bdbd7.tar.xz
glibc-cb0937b299182e78307795081489ec1f148bdbd7.zip
Fix x86_64 / x86 expm1l (-min_subnorm) result sign (bug 18569).
In the x86 / x86_64 implementations of expm1l, when expm1l's result
should underflow to 0 (argument minus the least subnormal, in some
rounding modes), it can be a zero of the wrong sign.  This patch fixes
this by returning the argument with underflow forced in that case
(this is a 1ulp error relative to the correctly rounded result of -0,
which is OK in terms of the documented accuracy goals, whereas a
result with the wrong sign never is).

Tested for x86_64 and x86.

	[BZ #18569]
	* sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]: Force
	underflow and return argument in case of subnormal argument.
	* sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]:
	Likewise.
	* math/auto-libm-test-in: Add more tests of expm1.
	* math/auto-libm-test-out: Regenerated.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog8
1 files changed, 8 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index aee4136f66..98b3802e56 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2015-06-21  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #18569]
+	* sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]: Force
+	underflow and return argument in case of subnormal argument.
+	* sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]:
+	Likewise.
+	* math/auto-libm-test-in: Add more tests of expm1.
+	* math/auto-libm-test-out: Regenerated.
+
 	[BZ #16361]
 	* sysdeps/i386/fpu/e_expl.S [!USE_AS_EXPM1L] (cmin): New object.
 	(IEEE754_EXPL) [!USE_AS_EXPM1L]: Force underflow exception for