]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Use hexadecimal floating-point constants for gcc >= 2.95.
authorUlrich Drepper <drepper@redhat.com>
Tue, 24 Aug 1999 20:35:50 +0000 (20:35 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 24 Aug 1999 20:35:50 +0000 (20:35 +0000)
sysdeps/arm/bits/huge_val.h
sysdeps/m68k/bits/huge_val.h

index 0e07bd56cc1974587e752c458e67f8dff20c3ccd..1b236c425d1bcd32f2a7df0c89aef7724df5c08b 100644 (file)
@@ -1,7 +1,7 @@
 /* `HUGE_VAL' constants for IEEE 754 machines (where it is infinity).
    Used by <stdlib.h> and <math.h> functions for overflow.
    ARM version.
-   Copyright (C) 1992, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1992, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
 
 #ifdef __GNUC__
 
-# define HUGE_VAL \
+# if __GNUC_PREREQ(2,95)
+
+#  define HUGE_VAL (0x1.0p2047)
+
+# else
+
+#  define HUGE_VAL \
   (__extension__                                                             \
    ((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; })   \
     { __l: 0x000000007ff00000ULL }).__d)
 
+# endif
+
 #else /* not GCC */
 
 # include <endian.h>
@@ -59,11 +67,19 @@ static __huge_val_t __huge_val = { __HUGE_VAL_bytes };
 
 # ifdef __GNUC__
 
-#  define HUGE_VALF \
+#  if __GNUC_PREREQ(2,95)
+
+#   define HUGE_VALF (0x1.0p255f)
+
+#  else
+
+#   define HUGE_VALF \
   (__extension__                                                             \
    ((union { unsigned __l __attribute__((__mode__(__SI__))); float __d; })    \
     { __l: 0x7f800000UL }).__d)
 
+#  endif
+
 # else /* not GCC */
 
 typedef union { unsigned char __c[4]; float __f; } __huge_valf_t;
index 822b82930b7dd6224ec2420967fe282cdda4f0c8..14c0855ab197295d2aab8b28c5284a1aa1405bc8 100644 (file)
@@ -1,6 +1,6 @@
 /* `HUGE_VAL' constants for m68k (where it is infinity).
    Used by <stdlib.h> and <math.h> functions for overflow.
-   Copyright (C) 1992, 1995, 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1995, 1996, 1997, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
 
 #ifdef __GNUC__
 
-# define HUGE_VAL                                      \
+# if __GNUC_PREREQ(2,95)
+
+#  define HUGE_VAL (0x1.0p2047)
+
+# else
+
+#  define HUGE_VAL                                     \
   (__extension__                                       \
    ((union { unsigned long long __l; double __d; })    \
     { __l: 0x7ff0000000000000ULL }).__d)
 
+# endif
+
 #else /* not GCC */
 
 static union { unsigned char __c[8]; double __d; } __huge_val =
@@ -48,28 +56,37 @@ static union { unsigned char __c[8]; double __d; } __huge_val =
 
 #ifdef __USE_ISOC9X
 
-# ifdef __GNUC__
+# if __GNUC_PREREQ(2,95)
 
-#  define HUGE_VALF                                    \
+#  define HUGE_VALF (0x1.0p255f)
+#  define HUGE_VALL (0x1.0p32767L)
+
+# else
+
+#  ifdef __GNUC__
+
+#   define HUGE_VALF                                   \
   (__extension__                                       \
    ((union { unsigned long __l; float __f; })          \
     { __l: 0x7f800000UL }).__f)
 
-#  define HUGE_VALL                                    \
+#   define HUGE_VALL                                   \
   (__extension__                                       \
    ((union { unsigned long __l[3]; long double __ld; })        \
     { __l: { 0x7fff0000UL, 0x80000000UL, 0UL } }).__ld)
 
-# else /* not GCC */
+#  else /* not GCC */
 
 static union { unsigned char __c[4]; float __f; } __huge_valf =
   { { 0x7f, 0x80, 0, 0 } };
-#  define HUGE_VALF    (__huge_valf.__f)
+#   define HUGE_VALF   (__huge_valf.__f)
 
 static union { unsigned char __c[12]; long double __ld; } __huge_vall =
   { { 0x7f, 0xff, 0, 0, 0x80, 0, 0, 0, 0, 0, 0, 0 } };
-#  define HUGE_VALL    (__huge_vall.__ld)
+#   define HUGE_VALL   (__huge_vall.__ld)
+
+#  endif /* GCC.  */
 
-# endif        /* GCC.  */
+# endif /* GCC 2.95.  */
 
 #endif /* __USE_ISOC9X.  */