alpha: Fix isnan
The isunordered formulation raises SIGFPE for SNaN.
This commit is contained in:
parent
a1ac3184fa
commit
631021e0aa
|
@ -1,5 +1,9 @@
|
|||
2014-07-01 Richard henderson <rth@redhat.com>
|
||||
|
||||
* sysdeps/alpha/fpu/bits/mathinline.h (__isnanf): Remove.
|
||||
(__isnan, __isnanl): Remove.
|
||||
* sysdeps/alpha/fpu/s_isnan.c (__isnan): Use integer arithmetic.
|
||||
|
||||
* sysdeps/alpha/fpu/libm-test-ulps: Update.
|
||||
|
||||
2014-07-01 Stefan Liebler <stli@linux.vnet.ibm.com>
|
||||
|
|
|
@ -120,29 +120,6 @@ __NTH (__signbitl (long double __x))
|
|||
return __builtin_signbitl (__x);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Test for NaN. Used in the isnan() macro. */
|
||||
|
||||
__MATH_INLINE int
|
||||
__NTH (__isnanf (float __x))
|
||||
{
|
||||
return isunordered (__x, __x);
|
||||
}
|
||||
|
||||
__MATH_INLINE int
|
||||
__NTH (__isnan (double __x))
|
||||
{
|
||||
return isunordered (__x, __x);
|
||||
}
|
||||
|
||||
#ifndef __NO_LONG_DOUBLE_MATH
|
||||
__MATH_INLINE int
|
||||
__NTH (__isnanl (long double __x))
|
||||
{
|
||||
return isunordered (__x, __x);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* C99 */
|
||||
|
||||
#endif /* __NO_MATH_INLINES */
|
||||
|
|
|
@ -31,7 +31,9 @@
|
|||
int
|
||||
__isnan (double x)
|
||||
{
|
||||
return isunordered (x, x);
|
||||
uint64_t ix;
|
||||
EXTRACT_WORDS64 (ix, x);
|
||||
return ix * 2 > 0xffe0000000000000ul;
|
||||
}
|
||||
|
||||
hidden_def (__isnan)
|
||||
|
|
Loading…
Reference in New Issue