summaryrefslogtreecommitdiff
path: root/sysdeps/arm
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2004-03-15 21:44:11 +0000
committerRichard Henderson <rth@redhat.com>2004-03-15 21:44:11 +0000
commita86573f4715e5f9638a8ae5e298203dbed7481b9 (patch)
treec2ebbf0b4002f462bba72a040cf3f4ae343419b5 /sysdeps/arm
parente3b22ad379f53950da7edf8d63d9f44e4d55d51c (diff)
* math/Makefile (headers): Add bits/huge_valf.h, bits/huge_vall.h, and bits/inf.h. * math/math.h: Include them.
* sysdeps/alpha/fpu/bits/mathdef.h, sysdeps/arm/fpu/bits/mathdef.h, sysdeps/generic/bits/mathdef.h, sysdeps/i386/fpu/bits/mathdef.h, sysdeps/ia64/fpu/bits/mathdef.h, sysdeps/m68k/fpu/bits/mathdef.h, sysdeps/mips/fpu/bits/mathdef.h, sysdeps/powerpc/fpu/bits/mathdef.h, sysdeps/sh/sh4/fpu/bits/mathdef.h, sysdeps/sparc/fpu/bits/mathdef.h, sysdeps/x86_64/fpu/bits/mathdef.h: Remove INFINITY. * sysdeps/arm/bits/huge_val.h (HUGE_VAL): Use __builtin_huge_val. (HUGE_VALF, HUGE_VALL): Remove. * sysdeps/ieee754/bits/huge_val.h: Likewise. * sysdeps/sh/bits/huge_val.h: Likewise. * sysdeps/generic/bits/huge_val.h (HUGE_VAL): Use __builtin_huge_val. * sysdeps/generic/bits/huge_valf.h: New file. * sysdeps/generic/bits/huge_vall.h: New file. * sysdeps/generic/bits/inf.h: New file. * sysdeps/ieee754/bits/huge_valf.h: New file. * sysdeps/ieee754/bits/inf.h: New file. * sysdeps/i386/bits/huge_val.h: Remove file. * sysdeps/i386/bits/huge_vall.h: New file. * sysdeps/ia64/bits/huge_val.h: Remove file. * sysdeps/ia64/bits/huge_vall.h: New file. * sysdeps/ieee754/ldbl-128/bits/huge_vall.h: New file. * sysdeps/m68k/bits/huge_val.h: Remove file. * sysdeps/m68k/bits/huge_vall.h: New file. * sysdeps/s390/bits/huge_val.h: Remove file. * sysdeps/sh/sh4/fpu/bits/huge_val.h: Remove file. * sysdeps/sparc/bits/huge_vall.h: New file. * sysdeps/sparc/sparc32/fpu/bits/huge_val.h: Remove file. * sysdeps/sparc/sparc64/fpu/bits/huge_val.h: Remove file. * sysdeps/ieee754/bits/nan.h (NAN): Use __builtin_nanf. * sysdeps/mips/bits/nan.h (NAN): Likewise. 2004-03-15 Richard Henderson <rth@redhat.com> * math/Makefile (headers): Add bits/huge_valf.h, bits/huge_vall.h, and bits/inf.h. * math/math.h: Include them. * sysdeps/alpha/fpu/bits/mathdef.h, sysdeps/arm/fpu/bits/mathdef.h, sysdeps/generic/bits/mathdef.h, sysdeps/i386/fpu/bits/mathdef.h, sysdeps/ia64/fpu/bits/mathdef.h, sysdeps/m68k/fpu/bits/mathdef.h, sysdeps/mips/fpu/bits/mathdef.h, sysdeps/powerpc/fpu/bits/mathdef.h, sysdeps/sh/sh4/fpu/bits/mathdef.h, sysdeps/sparc/fpu/bits/mathdef.h, sysdeps/x86_64/fpu/bits/mathdef.h: Remove INFINITY. * sysdeps/arm/bits/huge_val.h (HUGE_VAL): Use __builtin_huge_val. (HUGE_VALF, HUGE_VALL): Remove. * sysdeps/ieee754/bits/huge_val.h: Likewise. * sysdeps/sh/bits/huge_val.h: Likewise. * sysdeps/generic/bits/huge_val.h (HUGE_VAL): Use __builtin_huge_val. * sysdeps/generic/bits/huge_valf.h: New file. * sysdeps/generic/bits/huge_vall.h: New file. * sysdeps/generic/bits/inf.h: New file. * sysdeps/ieee754/bits/huge_valf.h: New file. * sysdeps/ieee754/bits/inf.h: New file. * sysdeps/i386/bits/huge_val.h: Remove file. * sysdeps/i386/bits/huge_vall.h: New file. * sysdeps/ia64/bits/huge_val.h: Remove file. * sysdeps/ia64/bits/huge_vall.h: New file. * sysdeps/ieee754/ldbl-128/bits/huge_vall.h: New file. * sysdeps/m68k/bits/huge_val.h: Remove file. * sysdeps/m68k/bits/huge_vall.h: New file. * sysdeps/s390/bits/huge_val.h: Remove file. * sysdeps/sh/sh4/fpu/bits/huge_val.h: Remove file. * sysdeps/sparc/bits/huge_vall.h: New file. * sysdeps/sparc/sparc32/fpu/bits/huge_val.h: Remove file. * sysdeps/sparc/sparc64/fpu/bits/huge_val.h: Remove file. * sysdeps/ieee754/bits/nan.h (NAN): Use __builtin_nanf. * sysdeps/mips/bits/nan.h (NAN): Likewise.
Diffstat (limited to 'sysdeps/arm')
-rw-r--r--sysdeps/arm/bits/huge_val.h66
-rw-r--r--sysdeps/arm/fpu/bits/mathdef.h6
2 files changed, 10 insertions, 62 deletions
diff --git a/sysdeps/arm/bits/huge_val.h b/sysdeps/arm/bits/huge_val.h
index 625cdc5c37..3339a0d01c 100644
--- a/sysdeps/arm/bits/huge_val.h
+++ b/sysdeps/arm/bits/huge_val.h
@@ -1,7 +1,8 @@
-/* `HUGE_VAL' constants for IEEE 754 machines (where it is infinity).
+/* `HUGE_VAL' constant for IEEE 754 machines (where it is infinity).
Used by <stdlib.h> and <math.h> functions for overflow.
ARM version.
- Copyright (C) 1992, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1992, 95, 96, 97, 98, 99, 2000, 2004
+ 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
@@ -23,25 +24,19 @@
# error "Never use <bits/huge_val.h> directly; include <math.h> instead."
#endif
-#include <features.h>
-
/* IEEE positive infinity (-HUGE_VAL is negative infinity). */
-#ifdef __GNUC__
-
-# if __GNUC_PREREQ(2,96)
-
-# define HUGE_VAL (__extension__ 0x1.0p2047)
+#if __GNUC_PREREQ(3,3)
+# define HUGE_VAL (__builtin_huge_val())
+#elif __GNUC_PREREQ(2,96)
+# define HUGE_VAL (__extension__ 0x1.0p2047)
+#elif defined __GNUC__
-# else
-
-# define HUGE_VAL \
+# define HUGE_VAL \
(__extension__ \
((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; }) \
{ __l: 0x000000007ff00000ULL }).__d)
-# endif
-
#else /* not GCC */
# include <endian.h>
@@ -59,46 +54,3 @@ static __huge_val_t __huge_val = { __HUGE_VAL_bytes };
# define HUGE_VAL (__huge_val.__d)
#endif /* GCC. */
-
-
-/* ISO C99 extensions: (float) HUGE_VALF and (long double) HUGE_VALL. */
-
-#ifdef __USE_ISOC99
-
-# ifdef __GNUC__
-
-# if __GNUC_PREREQ(2,96)
-
-# define HUGE_VALF (__extension__ 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;
-
-# if __BYTE_ORDER == __BIG_ENDIAN
-# define __HUGE_VALF_bytes { 0x7f, 0x80, 0, 0 }
-# endif
-# if __BYTE_ORDER == __LITTLE_ENDIAN
-# define __HUGE_VALF_bytes { 0, 0, 0x80, 0x7f }
-# endif
-
-static __huge_valf_t __huge_valf = { __HUGE_VALF_bytes };
-# define HUGE_VALF (__huge_valf.__f)
-
-# endif /* GCC. */
-
-
-/* Generally there is no separate `long double' format and it is the
- same as `double'. */
-# define HUGE_VALL HUGE_VAL
-
-#endif /* __USE_ISOC99. */
diff --git a/sysdeps/arm/fpu/bits/mathdef.h b/sysdeps/arm/fpu/bits/mathdef.h
index 44d7f0ddea..e013e74b7e 100644
--- a/sysdeps/arm/fpu/bits/mathdef.h
+++ b/sysdeps/arm/fpu/bits/mathdef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2000, 2004 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
@@ -29,10 +29,6 @@ typedef float float_t; /* `float' expressions are evaluated as
typedef double double_t; /* `double' expressions are evaluated as
`double'. */
-/* Define `INFINITY' as value of type `float'. */
-# define INFINITY HUGE_VALF
-
-
/* The values returned by `ilogb' for 0 and NaN respectively. */
# define FP_ILOGB0 (-2147483647)
# define FP_ILOGBNAN (2147483647)