Updated Solaris isinf support, by Juergen Keil and Ben Taylor.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2696 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
ths 2007-04-17 21:57:02 +00:00
parent 5c8cdbf833
commit c94655b0b5
1 changed files with 23 additions and 0 deletions

View File

@ -33,6 +33,29 @@
#define isunordered(x,y) unordered(x, y)
#endif
#if defined(__sun__) && !defined(NEED_LIBSUNMATH)
#ifndef isnan
# define isnan(x) \
(sizeof (x) == sizeof (long double) ? isnan_ld (x) \
: sizeof (x) == sizeof (double) ? isnan_d (x) \
: isnan_f (x))
static inline int isnan_f (float x) { return x != x; }
static inline int isnan_d (double x) { return x != x; }
static inline int isnan_ld (long double x) { return x != x; }
#endif
#ifndef isinf
# define isinf(x) \
(sizeof (x) == sizeof (long double) ? isinf_ld (x) \
: sizeof (x) == sizeof (double) ? isinf_d (x) \
: isinf_f (x))
static inline int isinf_f (float x) { return isnan (x - x); }
static inline int isinf_d (double x) { return isnan (x - x); }
static inline int isinf_ld (long double x) { return isnan (x - x); }
#endif
#endif
typedef float float32;
typedef double float64;
#ifdef FLOATX80