summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog22
-rw-r--r--bits/fp-fast.h (renamed from sysdeps/arm/bits/mathdef.h)22
-rw-r--r--bits/mathdef.h14
-rw-r--r--math/Makefile2
-rw-r--r--math/math.h15
-rw-r--r--sysdeps/aarch64/bits/fp-fast.h34
-rw-r--r--sysdeps/aarch64/bits/mathdef.h3
-rw-r--r--sysdeps/hppa/fpu/bits/mathdef.h37
-rw-r--r--sysdeps/powerpc/bits/fp-fast.h (renamed from sysdeps/tile/bits/mathdef.h)27
-rw-r--r--sysdeps/powerpc/bits/mathdef.h6
-rw-r--r--sysdeps/sh/sh4/bits/mathdef.h42
-rw-r--r--sysdeps/x86/bits/mathdef.h14
12 files changed, 81 insertions, 157 deletions
diff --git a/ChangeLog b/ChangeLog
index 6b64145050..2d1964573f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+2016-11-29 Joseph Myers <joseph@codesourcery.com>
+
+ * bits/fp-fast.h: New file.
+ * sysdeps/aarch64/bits/fp-fast.h: Likewise.
+ * sysdeps/powerpc/bits/fp-fast.h: Likewise.
+ * math/Makefile (headers): Add bits/fp-fast.h.
+ * math/math.h: Include <bits/fp-fast.h>.
+ * bits/mathdef.h (FP_FAST_FMA): Remove.
+ (FP_FAST_FMAF): Likewise.
+ (FP_FAST_FMAL): Likewise.
+ * sysdeps/aarch64/bits/mathdef.h (FP_FAST_FMA): Likewise.
+ (FP_FAST_FMAF): Likewise.
+ * sysdeps/powerpc/bits/mathdef.h (FP_FAST_FMA): Likewise.
+ (FP_FAST_FMAF): Likewise.
+ * sysdeps/x86/bits/mathdef.h (FP_FAST_FMA): Likewise.
+ (FP_FAST_FMAF): Likewise.
+ (FP_FAST_FMAL): Likewise.
+ * sysdeps/arm/bits/mathdef.h: Remove file.
+ * sysdeps/hppa/fpu/bits/mathdef.h: Likewise.
+ * sysdeps/sh/sh4/bits/mathdef.h: Likewise.
+ * sysdeps/tile/bits/mathdef.h: Likewise.
+
2016-11-28 Joseph Myers <joseph@codesourcery.com>
* math/w_ilogb_template.c: New file. Based on math/w_ilogb.c.
diff --git a/sysdeps/arm/bits/mathdef.h b/bits/fp-fast.h
index 68c96f0ce4..8598710c1a 100644
--- a/sysdeps/arm/bits/mathdef.h
+++ b/bits/fp-fast.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 1999-2016 Free Software Foundation, Inc.
+/* Define FP_FAST_* macros.
+ Copyright (C) 2016 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
@@ -12,19 +13,14 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
+ License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#if !defined _MATH_H && !defined _COMPLEX_H
-# error "Never use <bits/mathdef.h> directly; include <math.h> instead"
+#ifndef _MATH_H
+# error "Never use <bits/fp-fast.h> directly; include <math.h> instead."
#endif
-#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF
-# define _MATH_H_MATHDEF 1
-
-/* The values returned by `ilogb' for 0 and NaN respectively. */
-# define FP_ILOGB0 (-2147483647)
-# define FP_ILOGBNAN (2147483647)
+#ifdef __USE_ISOC99
/* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l}
builtins are supported. */
@@ -40,10 +36,4 @@
# define FP_FAST_FMAL 1
# endif
-#endif /* ISO C99 */
-
-#ifndef __NO_LONG_DOUBLE_MATH
-/* Signal that we do not really have a `long double'. This disables the
- declaration of all the `long double' function variants. */
-# define __NO_LONG_DOUBLE_MATH 1
#endif
diff --git a/bits/mathdef.h b/bits/mathdef.h
index 6dedc51c83..050204ab66 100644
--- a/bits/mathdef.h
+++ b/bits/mathdef.h
@@ -26,20 +26,6 @@
# define FP_ILOGB0 (-2147483647)
# define FP_ILOGBNAN 2147483647
-/* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l}
- builtins are supported. */
-#ifdef __FP_FAST_FMA
-# define FP_FAST_FMA 1
-#endif
-
-#ifdef __FP_FAST_FMAF
-# define FP_FAST_FMAF 1
-#endif
-
-#ifdef __FP_FAST_FMAL
-# define FP_FAST_FMAL 1
-#endif
-
#endif /* ISO C99 */
#ifndef __NO_LONG_DOUBLE_MATH
diff --git a/math/Makefile b/math/Makefile
index bcf627d173..a7c2b07fd8 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -28,7 +28,7 @@ headers := math.h bits/mathcalls.h bits/mathinline.h bits/huge_val.h \
bits/fenv.h bits/fenvinline.h bits/mathdef.h tgmath.h \
bits/math-finite.h bits/math-vector.h \
bits/libm-simd-decl-stubs.h bits/iscanonical.h \
- bits/flt-eval-method.h
+ bits/flt-eval-method.h bits/fp-fast.h
# FPU support code.
aux := setfpucw fpu_control
diff --git a/math/math.h b/math/math.h
index 70bf8e5ac0..95b39b3d92 100644
--- a/math/math.h
+++ b/math/math.h
@@ -97,6 +97,15 @@ typedef _Float128x double_t;
# endif
#endif
+/* Define macros for the return value of ilogb.
+
+ FP_ILOGB0 Expands to a value returned by `ilogb (0.0)'.
+ FP_ILOGBNAN Expands to a value returned by `ilogb (NAN)'.
+
+*/
+
+#include <bits/mathdef.h>
+
/* Get the architecture specific values describing the floating-point
evaluation. The following symbols will get defined:
@@ -107,13 +116,9 @@ typedef _Float128x double_t;
generally executes about as fast as a multiply and an add.
This macro is defined only iff the `fma' function is
implemented directly with a hardware multiply-add instructions.
-
- FP_ILOGB0 Expands to a value returned by `ilogb (0.0)'.
- FP_ILOGBNAN Expands to a value returned by `ilogb (NAN)'.
-
*/
-#include <bits/mathdef.h>
+#include <bits/fp-fast.h>
/* The file <bits/mathcalls.h> contains the prototypes for all the
actual math functions. These macros are used for those prototypes,
diff --git a/sysdeps/aarch64/bits/fp-fast.h b/sysdeps/aarch64/bits/fp-fast.h
new file mode 100644
index 0000000000..d84249d162
--- /dev/null
+++ b/sysdeps/aarch64/bits/fp-fast.h
@@ -0,0 +1,34 @@
+/* Define FP_FAST_* macros. AArch64 version.
+ Copyright (C) 2016 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
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _MATH_H
+# error "Never use <bits/fp-fast.h> directly; include <math.h> instead."
+#endif
+
+#ifdef __USE_ISOC99
+
+/* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l}
+ builtins are supported. */
+# define FP_FAST_FMA 1
+# define FP_FAST_FMAF 1
+
+# ifdef __FP_FAST_FMAL
+# define FP_FAST_FMAL 1
+# endif
+
+#endif
diff --git a/sysdeps/aarch64/bits/mathdef.h b/sysdeps/aarch64/bits/mathdef.h
index 2b55b59a5e..5418beacfb 100644
--- a/sysdeps/aarch64/bits/mathdef.h
+++ b/sysdeps/aarch64/bits/mathdef.h
@@ -27,7 +27,4 @@
# define FP_ILOGB0 (-2147483647)
# define FP_ILOGBNAN (2147483647)
-# define FP_FAST_FMA 1
-# define FP_FAST_FMAF 1
-
#endif /* ISO C99 */
diff --git a/sysdeps/hppa/fpu/bits/mathdef.h b/sysdeps/hppa/fpu/bits/mathdef.h
deleted file mode 100644
index 24b67b2f62..0000000000
--- a/sysdeps/hppa/fpu/bits/mathdef.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2006-2016 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
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#if !defined _MATH_H && !defined _COMPLEX_H
-# error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-#endif
-
-#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF
-# define _MATH_H_MATHDEF 1
-
-/* The values returned by `ilogb' for 0 and NaN respectively. */
-# define FP_ILOGB0 (-2147483647)
-# define FP_ILOGBNAN (2147483647)
-
-#endif /* ISO C99 */
-
-#ifndef __NO_LONG_DOUBLE_MATH
-/* On hppa `long double' and `double' are 64-bits. So, libm is built
- with NO_LONG_DOUBLE defined. The following define ensures the library
- and headers are consistent. This disables the declaration of all the
- `long double' function variants. */
-# define __NO_LONG_DOUBLE_MATH 1
-#endif
diff --git a/sysdeps/tile/bits/mathdef.h b/sysdeps/powerpc/bits/fp-fast.h
index 8ed7ac4341..1b6c32c16b 100644
--- a/sysdeps/tile/bits/mathdef.h
+++ b/sysdeps/powerpc/bits/fp-fast.h
@@ -1,6 +1,6 @@
-/* Copyright (C) 2011-2016 Free Software Foundation, Inc.
+/* Define FP_FAST_* macros. PowerPC version.
+ Copyright (C) 2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
- Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -13,27 +13,22 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
+ License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#if !defined _MATH_H && !defined _COMPLEX_H
-# error "Never use <bits/mathdef.h> directly; include <math.h> instead"
+#ifndef _MATH_H
+# error "Never use <bits/fp-fast.h> directly; include <math.h> instead."
#endif
-#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF
-# define _MATH_H_MATHDEF 1
-
-/* The values returned by `ilogb' for 0 and NaN respectively. */
-# define FP_ILOGB0 (-2147483647)
-# define FP_ILOGBNAN (2147483647)
+#ifdef __USE_ISOC99
/* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l}
builtins are supported. */
-# ifdef __FP_FAST_FMA
+# if (!defined _SOFT_FLOAT && !defined __NO_FPRS__) || defined __FP_FAST_FMA
# define FP_FAST_FMA 1
# endif
-# ifdef __FP_FAST_FMAF
+# if (!defined _SOFT_FLOAT && !defined __NO_FPRS__) || defined __FP_FAST_FMAF
# define FP_FAST_FMAF 1
# endif
@@ -41,10 +36,4 @@
# define FP_FAST_FMAL 1
# endif
-#endif /* ISO C99 */
-
-#ifndef __NO_LONG_DOUBLE_MATH
-/* Signal that we do not really have a `long double'. This disables the
- declaration of all the `long double' function variants. */
-# define __NO_LONG_DOUBLE_MATH 1
#endif
diff --git a/sysdeps/powerpc/bits/mathdef.h b/sysdeps/powerpc/bits/mathdef.h
index debb5a5d26..392e4e5ac6 100644
--- a/sysdeps/powerpc/bits/mathdef.h
+++ b/sysdeps/powerpc/bits/mathdef.h
@@ -33,10 +33,4 @@
# define FP_ILOGB0 (-2147483647)
# define FP_ILOGBNAN (2147483647)
-# if !defined _SOFT_FLOAT && !defined __NO_FPRS__
-/* The powerpc has a combined multiply/add instruction. */
-# define FP_FAST_FMA 1
-# define FP_FAST_FMAF 1
-# endif
-
#endif /* ISO C99 */
diff --git a/sysdeps/sh/sh4/bits/mathdef.h b/sysdeps/sh/sh4/bits/mathdef.h
deleted file mode 100644
index f3ee2879a7..0000000000
--- a/sysdeps/sh/sh4/bits/mathdef.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright (C) 1997-2016 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
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#if !defined _MATH_H && !defined _COMPLEX_H
-# error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-#endif
-
-
-/* FIXME! This file describes properties of the compiler, not the machine;
- it should not be part of libc!
-
- FIXME! This file does not deal with the -fshort-double option of
- gcc! */
-
-#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF
-# define _MATH_H_MATHDEF 1
-
-/* The values returned by `ilogb' for 0 and NaN respectively. */
-# define FP_ILOGB0 (-0x7fffffff)
-# define FP_ILOGBNAN 0x7fffffff
-
-#endif /* ISO C99 */
-
-#ifndef __NO_LONG_DOUBLE_MATH
-/* Signal that we do not really have a `long double'. The disables the
- declaration of all the `long double' function variants. */
-# define __NO_LONG_DOUBLE_MATH 1
-#endif
diff --git a/sysdeps/x86/bits/mathdef.h b/sysdeps/x86/bits/mathdef.h
index 2f0025c38d..17ad1efa89 100644
--- a/sysdeps/x86/bits/mathdef.h
+++ b/sysdeps/x86/bits/mathdef.h
@@ -26,18 +26,4 @@
# define FP_ILOGB0 (-2147483647 - 1)
# define FP_ILOGBNAN (-2147483647 - 1)
-/* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l}
- builtins are supported. */
-# ifdef __FP_FAST_FMA
-# define FP_FAST_FMA 1
-# endif
-
-# ifdef __FP_FAST_FMAF
-# define FP_FAST_FMAF 1
-# endif
-
-# ifdef __FP_FAST_FMAL
-# define FP_FAST_FMAL 1
-# endif
-
#endif /* ISO C99 */