Protect declarations of inline functions by feature tests to avoid

warning about missing prototype declarations.
This commit is contained in:
Ulrich Drepper 1997-12-14 22:09:47 +00:00
parent ac442bf7a9
commit 3632b95d0a

View File

@ -138,13 +138,20 @@ __inline_mathop(__tan, tan)
__inline_mathop(__tanh, tanh) __inline_mathop(__tanh, tanh)
__inline_mathop(__fabs, abs) __inline_mathop(__fabs, abs)
#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC9X
__inline_mathop(__rint, int) __inline_mathop(__rint, int)
__inline_mathop(__expm1, etoxm1) __inline_mathop(__expm1, etoxm1)
__inline_mathop(__log1p, lognp1) __inline_mathop(__log1p, lognp1)
__inline_mathop(__significand, getman) #endif
#ifdef __USE_MISC
__inline_mathop(__significand, getman)
#endif
#ifdef __USE_ISOC9X
__inline_mathop(__log2, log2) __inline_mathop(__log2, log2)
__inline_mathop(__trunc, intrz) __inline_mathop(__trunc, intrz)
#endif
#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__ #if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
@ -272,8 +279,18 @@ __m81_defun (float_type, __CONCAT(__ceil,s), (float_type __x)) \
__asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */ \ __asm __volatile__ ("fmove%.l %0, %!" : /* No outputs. */ \
: "dmi" (__ctrl_reg)); \ : "dmi" (__ctrl_reg)); \
return __result; \ return __result; \
} \ }
\
__inline_functions(double,)
#if defined __USE_MISC || defined __USE_ISOC9X
__inline_functions(float,f)
__inline_functions(long double,l)
#endif
#undef __inline_functions
#ifdef __USE_MISC
# define __inline_functions(float_type, s) \
__m81_defun (int, __CONCAT(__isinf,s), (float_type __value)) \ __m81_defun (int, __CONCAT(__isinf,s), (float_type __value)) \
{ \ { \
/* There is no branch-condition for infinity, \ /* There is no branch-condition for infinity, \
@ -284,14 +301,6 @@ __m81_defun (int, __CONCAT(__isinf,s), (float_type __value)) \
return (__fpsr & (2 << 24)) ? (__fpsr & (8 << 24) ? -1 : 1) : 0; \ return (__fpsr & (2 << 24)) ? (__fpsr & (8 << 24) ? -1 : 1) : 0; \
} \ } \
\ \
__m81_defun (int, __CONCAT(__isnan,s), (float_type __value)) \
{ \
char __result; \
__asm("ftst%.x %1\n" \
"fsun %0" : "=dm" (__result) : "f" (__value)); \
return __result; \
} \
\
__m81_defun (int, __CONCAT(__finite,s), (float_type __value)) \ __m81_defun (int, __CONCAT(__finite,s), (float_type __value)) \
{ \ { \
/* There is no branch-condition for infinity, so we must extract and \ /* There is no branch-condition for infinity, so we must extract and \
@ -302,6 +311,44 @@ __m81_defun (int, __CONCAT(__finite,s), (float_type __value)) \
return (__fpsr & (3 << 24)) == 0; \ return (__fpsr & (3 << 24)) == 0; \
} \ } \
\ \
__m81_defun (float_type, __CONCAT(__scalbn,s), \
(float_type __x, int __n)) \
{ \
float_type __result; \
__asm ("fscale%.l %1, %0" : "=f" (__result) : "dmi" (__n), "0" (__x)); \
return __result; \
}
__inline_functions(double,)
__inline_functions(float,f)
__inline_functions(long double,l)
# undef __inline_functions
#endif /* Use misc. */
#if defined __USE_MISC || defined __USE_XOPEN
# define __inline_functions(float_type, s) \
__m81_defun (int, __CONCAT(__isnan,s), (float_type __value)) \
{ \
char __result; \
__asm("ftst%.x %1\n" \
"fsun %0" : "=dm" (__result) : "f" (__value)); \
return __result; \
}
__inline_functions(double,)
# ifdef __USE_MISC
__inline_functions(float,f)
__inline_functions(long double,l)
# endif
# undef __inline_functions
#endif
#ifdef __USE_ISOC9X
# define __inline_functions(float_type, s) \
__m81_defun (int, __CONCAT(__signbit,s), (float_type __value)) \ __m81_defun (int, __CONCAT(__signbit,s), (float_type __value)) \
{ \ { \
/* There is no branch-condition for the sign bit, so we must extract \ /* There is no branch-condition for the sign bit, so we must extract \
@ -312,14 +359,6 @@ __m81_defun (int, __CONCAT(__signbit,s), (float_type __value)) \
return (__fpsr >> 27) & 1; \ return (__fpsr >> 27) & 1; \
} \ } \
\ \
__m81_defun (float_type, __CONCAT(__scalbn,s), \
(float_type __x, int __n)) \
{ \
float_type __result; \
__asm ("fscale%.l %1, %0" : "=f" (__result) : "dmi" (__n), "0" (__x)); \
return __result; \
} \
\
__m81_defun (float_type, __CONCAT(__scalbln,s), \ __m81_defun (float_type, __CONCAT(__scalbln,s), \
(float_type __x, long int __n)) \ (float_type __x, long int __n)) \
{ \ { \
@ -347,14 +386,6 @@ __m81_defun (long int, __CONCAT(__lrint,s), (float_type __x)) \
return __result; \ return __result; \
} \ } \
\ \
__m81_inline void \
__m81_u(__CONCAT(__sincos,s))(float_type __x, float_type *__sinx, \
float_type *__cosx) \
{ \
__asm ("fsincos%.x %2,%1:%0" \
: "=f" (*__sinx), "=f" (*__cosx) : "f" (__x)); \
} \
\
__m81_inline float_type \ __m81_inline float_type \
__m81_u(__CONCAT(__fma,s))(float_type __x, float_type __y, \ __m81_u(__CONCAT(__fma,s))(float_type __x, float_type __y, \
float_type __z) \ float_type __z) \
@ -362,11 +393,30 @@ __m81_u(__CONCAT(__fma,s))(float_type __x, float_type __y, \
return (__x * __y) + __z; \ return (__x * __y) + __z; \
} }
/* This defines the three variants of the inline functions. */
__inline_functions (double,) __inline_functions (double,)
__inline_functions (float,f) __inline_functions (float,f)
__inline_functions (long double,l) __inline_functions (long double,l)
#undef __inline_functions # undef __inline_functions
#endif /* Use ISO C9x */
#ifdef __USE_GNU
# define __inline_functions(float_type, s) \
__m81_inline void \
__m81_u(__CONCAT(__sincos,s))(float_type __x, float_type *__sinx, \
float_type *__cosx) \
{ \
__asm ("fsincos%.x %2,%1:%0" \
: "=f" (*__sinx), "=f" (*__cosx) : "f" (__x)); \
}
__inline_functions (double,)
__inline_functions (float,f)
__inline_functions (long double,l)
# undef __inline_functions
#endif
#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__ #if !defined __NO_MATH_INLINES && defined __OPTIMIZE__