From 45c8c6469a00491b9f908d0d24a1affe88e0f0e3 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Thu, 11 Feb 2010 21:03:51 +0000 Subject: 2010-02-11 Craig Howland * libc/include/machine/ieeefp.h: isfinite macro modified to run faster by only calling fpclassify once instead of possibly twice. --- newlib/libc/include/machine/ieeefp.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'newlib/libc/include/machine') 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)) -- cgit v1.2.3