From 750cd4ff74794408a1ce2aeed425b3e138c3584c Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 24 Jun 2003 16:33:49 +0000 Subject: * sysdeps/alpha/fpu/bits/mathinline.h: Honor __LIBC_INTERNAL_MATH_INLINES. Implement __signbitf, __signbit. * sysdeps/alpha/fpu/bits/mathinline.h: Honor __LIBC_INTERNAL_MATH_INLINES. Implement __signbitf, __signbit. --- sysdeps/alpha/fpu/bits/mathinline.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'sysdeps/alpha') diff --git a/sysdeps/alpha/fpu/bits/mathinline.h b/sysdeps/alpha/fpu/bits/mathinline.h index 3fb6ec2f24..8141485b47 100644 --- a/sysdeps/alpha/fpu/bits/mathinline.h +++ b/sysdeps/alpha/fpu/bits/mathinline.h @@ -58,7 +58,8 @@ !isunordered(__x, __y) && __x != __y; })) #endif /* ISO C99 */ -#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__ +#if (!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) \ + && defined __OPTIMIZE__ #define __inline_copysign(NAME, TYPE) \ __MATH_INLINE TYPE \ @@ -176,6 +177,19 @@ __MATH_INLINE double fdim (double __x, double __y) __THROW return __x < __y ? 0.0 : __x - __y; } +/* Test for negative number. Used in the signbit() macro. */ +__MATH_INLINE int __signbitf (float __x) __THROW +{ + __extension__ union { float __f; int __i; } __u = { __f: __x }; + return __u.__i < 0; +} + +__MATH_INLINE int __signbit (double __x) __THROW +{ + __extension__ union { double __d; long __i; } __u = { __d: __x }; + return __u.__i < 0; +} + #endif /* C99 */ #endif /* __NO_MATH_INLINES */ -- cgit v1.2.3