Fix x86 / x86_64 expl, exp10l missing underflows (bug 16361).
commit7540cfc5a8c39eca9ba7b631dd30b35f6530f54d
authorJoseph Myers <joseph@codesourcery.com>
Sun, 21 Jun 2015 17:48:04 +0000 (21 17:48 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Sun, 21 Jun 2015 17:48:04 +0000 (21 17:48 +0000)
treec24b888cf113ef3ec9a6e55ad495a1917c6e57bb
parentd6cc0b4feaacf7514167cde0b3935f0c9b2c2d88
Fix x86 / x86_64 expl, exp10l missing underflows (bug 16361).

Similar to various other bugs in this area, the x86 and x86_64
implementations of expl / exp10l can fail to produce underflow
exceptions when the unscaled result has trailing 0 bits so the scaling
down to subnormal precision is exact.  This patch fixes this by
forcing the exception in the case of tiny results.

Tested for x86_64 and x86.

[BZ #16361]
* sysdeps/i386/fpu/e_expl.S [!USE_AS_EXPM1L] (cmin): New object.
[!USE_AS_EXPM1L] (IEEE754_EXPL): Force underflow exception for
tiny results.
* sysdeps/x86_64/fpu/e_expl.S [!USE_AS_EXPM1L] (cmin): New object.
[!USE_AS_EXPM1L] (IEEE754_EXPL): Force underflow exception for
tiny results.
* math/auto-libm-test-in: Add more tests of exp and exp10.  Do not
mark underflow exceptions as possibly missing for bug 16361.
* math/auto-libm-test-out: Regenerated.
ChangeLog
NEWS
math/auto-libm-test-in
math/auto-libm-test-out
sysdeps/i386/fpu/e_expl.S
sysdeps/x86_64/fpu/e_expl.S