diff options
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/fpu/bits/mathinline.h | 15 |
2 files changed, 15 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 09bae078d1..42d10baa10 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,4 @@ -2000-10-17 Geoffrey Keating <geoffk@cygnus.com> +2000-10-19 Geoffrey Keating <geoffk@cygnus.com> * sysdeps/powerpc/fpu/bits/mathinline.h: Add versions of the unordered comparison functions that use the GCC builtins. diff --git a/sysdeps/powerpc/fpu/bits/mathinline.h b/sysdeps/powerpc/fpu/bits/mathinline.h index e4f208cd41..0548f92f1e 100644 --- a/sysdeps/powerpc/fpu/bits/mathinline.h +++ b/sysdeps/powerpc/fpu/bits/mathinline.h @@ -21,6 +21,17 @@ #if defined __GNUC__ && !defined _SOFT_FLOAT #ifdef __USE_ISOC99 +#if __GNUC_PREREQ (2,96) + +#define isgreater(x, y) __builtin_isgreater (x, y) +#define isgreaterequal(x, y) __builtin_isgreaterequal (x, y) +#define isless(x, y) __builtin_isless (x, y) +#define islessequal(x, y) __builtin_islessequal (x, y) +#define islessgreater(x, y) __builtin_islessgreater (x, y) +#define isunordered(x, y) __builtin_isunordered (x, y) + +#else + # define __unordered_cmp(x, y) \ (__extension__ \ ({ __typeof__(x) __x = (x); __typeof__(y) __y = (y); \ @@ -35,7 +46,9 @@ # define islessequal(x, y) ((__unordered_cmp (x, y) & 0xA) != 0) # define islessgreater(x, y) ((__unordered_cmp (x, y) & 0xC) != 0) # define isunordered(x, y) (__unordered_cmp (x, y) & 1) -#endif /* __USE_ISOC99 && !_SOFT_FLOAT */ + +#endif /* __GNUC_PREREQ (2,97) */ +#endif /* __USE_ISOC99 */ #if !defined __NO_MATH_INLINES && defined __OPTIMIZE__ |