There are various bugs for missing overflow and underflow exceptions
on exp-family functions, resulting from the wrappers checking for
overflow and underflow before calling the functions such as
__ieee754_exp, and in the overflow/underflow cases then calling
__kernel_standard so setting errno but missing out on the exceptions.
I propose this patch to fix these bugs by using the approach of some
other wrappers, checking for overflow and underflow based on the
results after calling __ieee754_exp. This in turn requires changes to
the x86/x86_64 code (on top of my previous patch
<http://sourceware.org/ml/libc-alpha/2012-05/msg00184.html> to use .S
files for those) to avoid spurious overflows in internal calculations
for very large (positive or negative) exponents. The long double
wrappers not changed already check for overflow/underflow after
calling __ieee754_expl, so should not need any changes.
Tested x86_64 and x86. The underflow part of bug 14036 isn't fixed by
this patch but hopefully Andreas's patch to use -frounding-math will,
together with this patch, fix that problem; if not, further
investigation will be needed.