diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2010-02-11 21:03:51 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2010-02-11 21:03:51 +0000 |
commit | 45c8c6469a00491b9f908d0d24a1affe88e0f0e3 (patch) | |
tree | 32a5b0b8e45843aca3409aba03bb47579a1f220d /newlib/libc/include | |
parent | 451a8eb09ae2bb2484ffc76da5854ea9983dd643 (diff) | |
download | cygnal-45c8c6469a00491b9f908d0d24a1affe88e0f0e3.tar.gz cygnal-45c8c6469a00491b9f908d0d24a1affe88e0f0e3.tar.bz2 cygnal-45c8c6469a00491b9f908d0d24a1affe88e0f0e3.zip |
2010-02-11 Craig Howland <howland@LGSInnovations.com>
* libc/include/machine/ieeefp.h: isfinite macro modified to run faster
by only calling fpclassify once instead of possibly twice.
Diffstat (limited to 'newlib/libc/include')
-rw-r--r-- | newlib/libc/include/machine/ieeefp.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/newlib/libc/include/machine/ieeefp.h b/newlib/libc/include/machine/ieeefp.h index b3ce76a24..c174c2127 100644 --- a/newlib/libc/include/machine/ieeefp.h +++ b/newlib/libc/include/machine/ieeefp.h @@ -80,10 +80,11 @@ #ifdef __SPU__ #define __IEEE_BIG_ENDIAN -#define isfinite(y) \ - (__extension__ ({__typeof__(y) __y = (y); \ - (sizeof (__y) == sizeof (float)) ? (1) : \ - fpclassify(__y) != FP_INFINITE && fpclassify(__y) != FP_NAN;})) +#define isfinite(__y) \ + (__extension__ ({int __cy; \ + (sizeof (__y) == sizeof (float)) ? (1) : \ + (__cy = fpclassify(__y)) != FP_INFINITE && __cy != FP_NAN;})) + #define isinf(__x) ((sizeof (__x) == sizeof (float)) ? (0) : __isinfd(__x)) #define isnan(__x) ((sizeof (__x) == sizeof (float)) ? (0) : __isnand(__x)) |