summaryrefslogtreecommitdiffstats
path: root/newlib/libc/include
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2010-02-11 21:03:51 +0000
committerJeff Johnston <jjohnstn@redhat.com>2010-02-11 21:03:51 +0000
commit45c8c6469a00491b9f908d0d24a1affe88e0f0e3 (patch)
tree32a5b0b8e45843aca3409aba03bb47579a1f220d /newlib/libc/include
parent451a8eb09ae2bb2484ffc76da5854ea9983dd643 (diff)
downloadcygnal-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.h9
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))