From 4851a949b4cd1f280b56a728c784aaa85e51124c Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Fri, 9 Mar 2012 12:38:23 -0800 Subject: Make inline __isnan, __isinf_ns, __finite generic. For code generation to stay identical on x86_64, this requires that we define the fp word manipulation macros before including the generic header. --- sysdeps/ieee754/flt-32/math_private.h | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 sysdeps/ieee754/flt-32/math_private.h (limited to 'sysdeps/ieee754/flt-32') diff --git a/sysdeps/ieee754/flt-32/math_private.h b/sysdeps/ieee754/flt-32/math_private.h new file mode 100644 index 0000000000..e33db02b4c --- /dev/null +++ b/sysdeps/ieee754/flt-32/math_private.h @@ -0,0 +1,35 @@ +#ifndef _MATH_PRIVATE_H_ + +#include_next + +#ifndef __isnanf +extern __always_inline int +__isnanf (float d) +{ + u_int32_t di; + GET_FLOAT_WORD (di, d); + return (di & 0x7fffffff) > 0x7f800000; +} +#endif + +#ifndef __isinf_nsf +extern __always_inline int +__isinf_nsf (float d) +{ + u_int32_t di; + GET_FLOAT_WORD (di, d); + return (di & 0x7fffffff) == 0x7f800000; +} +#endif + +#ifndef __finitef +extern __always_inline int +__finitef (float d) +{ + u_int32_t di; + GET_FLOAT_WORD (di, d); + return (di & 0x7fffffff) < 0x7f800000; +} +#endif + +#endif /* _MATH_PRIVATE_H_ */ -- cgit 1.4.1