glibc/sysdeps
Joseph Myers 03d95bd483 Fix exp2 spurious underflows (bug 16560).
This patch fixes the remaining part of bug 16560, spurious underflows
from exp2 of arguments close to 0 (when the result is close to 1, so
should not underflow), by just using 1+x instead of a more complicated
calculation when the argument is sufficiently small.

Tested for x86_64, x86 and mips64.

	[BZ #16560]
	* math/e_exp2l.c [LDBL_MANT_DIG == 106] (LDBL_EPSILON): Undefine
	and redefine.
	(__ieee754_exp2l): Do not multiply small fractional parts by
	M_LN2l.
	* sysdeps/i386/fpu/e_exp2l.S (__ieee754_exp2l): Just add 1 to
	small argument.
	* sysdeps/ieee754/dbl-64/e_exp2.c (__ieee754_exp2): Likewise.
	* sysdeps/ieee754/flt-32/e_exp2f.c (__ieee754_exp2f): Likewise.
	* sysdeps/x86_64/fpu/e_exp2l.S (__ieee754_exp2l): Likewise.
	* math/auto-libm-test-in: Add more tests of exp2.
	* math/auto-libm-test-out: Regenerated.
2015-02-12 19:02:45 +00:00
..
aarch64 Clean up sysdep-dl-routines variable. 2015-02-06 10:42:08 -08:00
alpha Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
arm ARM: Add missing sfi_breg in LDR_GLOBAL macro. 2015-02-06 14:42:18 -08:00
generic Fix recursive dlopen. 2015-01-21 01:51:10 -05:00
gnu hurd: fix unwind-resume.c build 2015-02-08 18:46:00 +01:00
hppa Clean up sysdep-dl-routines variable. 2015-02-06 10:42:08 -08:00
i386 Fix exp2 spurious underflows (bug 16560). 2015-02-12 19:02:45 +00:00
ia64 Clean up sysdep-dl-routines variable. 2015-02-06 10:42:08 -08:00
ieee754 Fix exp2 spurious underflows (bug 16560). 2015-02-12 19:02:45 +00:00
init_array Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
m68k m68k: fix missing definition of __feraiseexcept 2015-01-25 23:36:02 +01:00
mach hurd: fix tls.h build 2015-02-08 05:06:17 +01:00
microblaze MicroBlaze: Avoid pointer to integer conversion warning 2015-01-09 14:49:27 +10:00
mips Remove sysdeps/mips soft-fp subdirectories. 2015-02-10 22:01:39 +00:00
nios2 glibc 2.21 pre-release update. 2015-02-05 23:14:38 -05:00
nptl Include <signal.h> in sysdeps/nptl/allocrtsig.c 2015-01-29 10:00:25 +01:00
posix Fix shm-directory.h #include. 2015-01-09 16:08:14 -08:00
powerpc powerpc: POWER7 strncpy optimization for unaligned string 2015-02-12 13:16:08 -05:00
pthread hurd: fix build with pthread aio 2015-02-07 21:48:32 +01:00
s390 S390: Get rid of linknamespace failures for string functions. 2015-01-16 09:17:32 +01:00
sh Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
sparc Fix two bugs in sparc atomics. 2015-01-31 23:39:50 -08:00
tile tilegx32: set __HAVE_64B_ATOMICS to 0 2015-01-28 14:51:21 -05:00
unix powerpc: Fix TABORT encoding for little endian 2015-02-12 05:34:16 -06: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 exp2 spurious underflows (bug 16560). 2015-02-12 19:02:45 +00:00