2007-04-26 Patrick Mansfield <patmans@us.ibm.com>
* libc/include/ieeefp.h: use prefixed __ieeefp_ macros that can be overridden via machine/ieeefp.h. * libc/include/machine/ieeefp.h: Add SPU specific C99 and ieeefp macros for isnan and related macros. * libc/include/math.h: Allow C99 isfinite, isinf, and isnan to be overridden via machine/ieeefp.h. * libm/machine/spu/Makefile.am: Add new files. * libm/machine/spu/Makefile.in: Autogenerate with new files. * libm/machine/spu/sf_fpclassify.c: Add SPU specific __fpclassifyf. * libm/machine/spu/sf_finite.c: Add SPU specific finitef. * libm/machine/spu/sf_isinf.c: Add SPU specific isinff. * libm/machine/spu/sf_isinff.c: Add SPU specific __isinff. * libm/machine/spu/sf_isnan.c: Add SPU specific isnanf. * libm/machine/spu/sf_isnanf.c: Add SPU specific __isnanf. * libm/machine/spu/sf_nan.c: Add SPU specific nanf.
This commit is contained in:
@ -131,21 +131,29 @@ extern int __signbitd (double x);
|
||||
(__extension__ ({__typeof__(x) __x = (x); \
|
||||
(sizeof (__x) == sizeof (float)) ? __fpclassifyf(__x) : __fpclassifyd(__x);}))
|
||||
|
||||
#ifndef isfinite
|
||||
#define isfinite(y) \
|
||||
(__extension__ ({__typeof__(y) __y = (y); \
|
||||
fpclassify(__y) != FP_INFINITE && fpclassify(__y) != FP_NAN;}))
|
||||
#endif
|
||||
|
||||
/* Note: isinf and isnan were once functions in newlib that took double
|
||||
* arguments. C99 specifies that these names are reserved for macros
|
||||
* supporting multiple floating point types. Thus, they are
|
||||
* now defined as macros. Implementations of the old functions
|
||||
* taking double arguments still exist for compatibility purposes. */
|
||||
#ifndef isinf
|
||||
#define isinf(x) \
|
||||
(__extension__ ({__typeof__(x) __x = (x); \
|
||||
(sizeof (__x) == sizeof (float)) ? __isinff(__x) : __isinfd(__x);}))
|
||||
#endif
|
||||
|
||||
#ifndef isnan
|
||||
#define isnan(x) \
|
||||
(__extension__ ({__typeof__(x) __x = (x); \
|
||||
(sizeof (__x) == sizeof (float)) ? __isnanf(__x) : __isnand(__x);}))
|
||||
#endif
|
||||
|
||||
#define isnormal(y) (fpclassify(y) == FP_NORMAL)
|
||||
#define signbit(x) \
|
||||
(__extension__ ({__typeof__(x) __x = (x); \
|
||||
|
Reference in New Issue
Block a user