glibc/sysdeps
Joseph Myers 5a9e4c09a2 Fix ldbl-96 scalblnl underflowing results (bug 17803).
The ldbl-96 implementation of scalblnl (used for x86_64 and ia64) uses
a condition k <= -63 to determine when a standard underflowing result
tiny*__copysignl(tiny,x) should be returned.  However, that condition
corresponds to values with exponent -16446 or less, and in the case of
-16446, the correct result for round-to-nearest depends on whether the
value is exactly 0x1p-16446 (half the least subnormal) or more than
that.  This patch fixes the bug by changing the condition to k <= -64
and accordingly adjusting the exponent by 64 not 63 when converting to
a normal value.

Tested for x86_64.

	[BZ #17803]
	* sysdeps/ieee754/ldbl-96/s_scalblnl.c (twom63): Rename to
	twom64.  Adjust value to 0x1p-64L.
	(__scalblnl): Only return standard underflowing result for K <=
	-64 not K <= -63; adjust exponent for underflowing result by 64
	not 63.
	* math/libm-test.inc (scalbn_test_data): Add more tests.
	(scalbln_test_data): Likewise.
2015-01-12 23:02:14 +00:00
..
aarch64 Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
alpha Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
arm Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
generic Clean up allocrtsig code. 2015-01-08 15:31:15 -08:00
gnu ARM: Consolidate with generic unwinder wrapper code 2015-01-05 15:42:16 -08:00
hppa Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
i386 Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
ia64 Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
ieee754 Fix ldbl-96 scalblnl underflowing results (bug 17803). 2015-01-12 23:02:14 +00:00
init_array Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
m68k Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
mach Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
microblaze MicroBlaze: Avoid pointer to integer conversion warning 2015-01-09 14:49:27 +10:00
mips Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
nptl Clean up allocrtsig code. 2015-01-08 15:31:15 -08:00
posix Fix shm-directory.h #include. 2015-01-09 16:08:14 -08:00
powerpc powerpc: Fix Copyright dates and CL entry 2015-01-12 12:58:34 -05:00
pthread Some #include cleanup in aio/timer code. 2015-01-08 15:38:15 -08:00
s390 Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
sh Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
sparc Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
tile Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
unix Add x86 32 bit vDSO time function support 2015-01-12 16:03:58 -02:00
wordsize-32 Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wordsize-64 Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
x86 Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
x86_64 Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00