+2017-12-12 Joseph Myers <joseph@codesourcery.com>
+
+ * soft-fp/fmadf4.c: Move to ....
+ * sysdeps/ieee754/soft-fp/s_fma.c: ... here.
+ * soft-fp/fmasf4.c: Move to ....
+ * sysdeps/ieee754/soft-fp/s_fmaf.c: ... here.
+ * soft-fp/fmatf4.c: Move to ....
+ * sysdeps/ieee754/soft-fp/s_fmal.c: ... here.
+ * sysdeps/ieee754/soft-fp/Makefile: New file.
+ * sysdeps/arm/preconfigure.ac: Define with_fp_cond.
+ * sysdeps/arm/preconfigure: Regenerated.
+ * sysdeps/arm/nofpu/Implies: New file.
+ * sysdeps/arm/s_fma.c: Remove file.
+ * sysdeps/arm/s_fmaf.c: Likewise.
+ * sysdeps/m68k/coldfire/nofpu/Implies: New file.
+ * sysdeps/m68k/coldfire/nofpu/s_fma.c: Remove file.
+ * sysdeps/m68k/coldfire/nofpu/s_fmaf.c: Likewise.
+ * sysdeps/microblaze/Implies: Add ieee754/soft-fp.
+ * sysdeps/microblaze/s_fma.c: Remove file.
+ * sysdeps/microblaze/s_fmaf.c: Likewise.
+ * sysdeps/mips/mips32/nofpu/Implies: New file.
+ * sysdeps/mips/mips64/n32/fpu/s_fma.c: Likewise.
+ * sysdeps/mips/mips64/n32/nofpu/Implies: Likewise.
+ * sysdeps/mips/mips64/n64/fpu/s_fma.c: Likewise.
+ * sysdeps/mips/mips64/n64/nofpu/Implies: Likewise.
+ * sysdeps/mips/ieee754/s_fma.c: Remove file.
+ * sysdeps/mips/ieee754/s_fmaf.c: Likewise.
+ * sysdeps/mips/ieee754/s_fmal.c: Update include for move of fmal
+ implementation.
+ * sysdeps/nios2/Implies: Add ieee754/soft-fp.
+ * sysdeps/nios2/s_fma.c: Remove file.
+ * sysdeps/nios2/s_fmaf.c: Likewise.
+ * sysdeps/sh/nofpu/Implies: New file.
+ * sysdeps/sh/s_fma.c: Remove file.
+ * sysdeps/sh/s_fmaf.c: Likewise.
+ * sysdeps/tile/Implies: Add ieee754/soft-fp.
+ * sysdeps/tile/s_fma.c: Remove file.
+ * sysdeps/tile/s_fmaf.c: Likewise.
+
2017-12-12 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines):
+++ /dev/null
-/* Implement fma using soft-fp.
- Copyright (C) 2013-2017 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.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file into
- combinations with other programs, and to distribute those
- combinations without any restriction coming from the use of this
- file. (The Lesser General Public License restrictions do apply in
- other respects; for example, they cover modification of the file,
- and distribution when not linked into a combine executable.)
-
- 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/>. */
-
-#include <math.h>
-#include <libc-diag.h>
-#include <libm-alias-double.h>
-
-/* R_e is not set in cases where it is not used in packing, but the
- compiler does not see that it is set in all cases where it is
- used, resulting in warnings that it may be used uninitialized.
- The location of the warning differs in different versions of GCC,
- it may be where R is defined using a macro or it may be where the
- macro is defined. */
-DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
-
-#include "soft-fp.h"
-#include "double.h"
-
-double
-__fma (double a, double b, double c)
-{
- FP_DECL_EX;
- FP_DECL_D (A);
- FP_DECL_D (B);
- FP_DECL_D (C);
- FP_DECL_D (R);
- double r;
-
- FP_INIT_ROUNDMODE;
- FP_UNPACK_D (A, a);
- FP_UNPACK_D (B, b);
- FP_UNPACK_D (C, c);
- FP_FMA_D (R, A, B, C);
- FP_PACK_D (r, R);
- FP_HANDLE_EXCEPTIONS;
-
- return r;
-}
-DIAG_POP_NEEDS_COMMENT;
-
-#ifndef __fma
-libm_alias_double (__fma, fma)
-#endif
+++ /dev/null
-/* Implement fmaf using soft-fp.
- Copyright (C) 2013-2017 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.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file into
- combinations with other programs, and to distribute those
- combinations without any restriction coming from the use of this
- file. (The Lesser General Public License restrictions do apply in
- other respects; for example, they cover modification of the file,
- and distribution when not linked into a combine executable.)
-
- 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/>. */
-
-#include <math.h>
-#include <libc-diag.h>
-#include <libm-alias-float.h>
-
-/* R_e is not set in cases where it is not used in packing, but the
- compiler does not see that it is set in all cases where it is
- used, resulting in warnings that it may be used uninitialized.
- The location of the warning differs in different versions of GCC,
- it may be where R is defined using a macro or it may be where the
- macro is defined. */
-DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
-
-#include "soft-fp.h"
-#include "single.h"
-
-float
-__fmaf (float a, float b, float c)
-{
- FP_DECL_EX;
- FP_DECL_S (A);
- FP_DECL_S (B);
- FP_DECL_S (C);
- FP_DECL_S (R);
- float r;
-
- FP_INIT_ROUNDMODE;
- FP_UNPACK_S (A, a);
- FP_UNPACK_S (B, b);
- FP_UNPACK_S (C, c);
- FP_FMA_S (R, A, B, C);
- FP_PACK_S (r, R);
- FP_HANDLE_EXCEPTIONS;
-
- return r;
-}
-DIAG_POP_NEEDS_COMMENT;
-
-#ifndef __fmaf
-libm_alias_float (__fma, fma)
-#endif
+++ /dev/null
-/* Implement fmal using soft-fp.
- Copyright (C) 2013-2017 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.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file into
- combinations with other programs, and to distribute those
- combinations without any restriction coming from the use of this
- file. (The Lesser General Public License restrictions do apply in
- other respects; for example, they cover modification of the file,
- and distribution when not linked into a combine executable.)
-
- 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/>. */
-
-#include <math.h>
-#include <libc-diag.h>
-#include <libm-alias-ldouble.h>
-
-/* R_e is not set in cases where it is not used in packing, but the
- compiler does not see that it is set in all cases where it is
- used, resulting in warnings that it may be used uninitialized.
- The location of the warning differs in different versions of GCC,
- it may be where R is defined using a macro or it may be where the
- macro is defined. */
-DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
-
-#include "soft-fp.h"
-#include "quad.h"
-
-long double
-__fmal (long double a, long double b, long double c)
-{
- FP_DECL_EX;
- FP_DECL_Q (A);
- FP_DECL_Q (B);
- FP_DECL_Q (C);
- FP_DECL_Q (R);
- long double r;
-
- FP_INIT_ROUNDMODE;
- FP_UNPACK_Q (A, a);
- FP_UNPACK_Q (B, b);
- FP_UNPACK_Q (C, c);
- FP_FMA_Q (R, A, B, C);
- FP_PACK_Q (r, R);
- FP_HANDLE_EXCEPTIONS;
-
- return r;
-}
-DIAG_POP_NEEDS_COMMENT;
-
-libm_alias_ldouble (__fma, fma)
--- /dev/null
+ieee754/soft-fp
esac
machine=arm/$machine
+ with_fp_cond="!defined __SOFTFP__"
esac
esac
machine=arm/$machine
+ with_fp_cond="!defined __SOFTFP__"
esac
+++ /dev/null
-#ifdef __SOFTFP__
-# include <soft-fp/fmadf4.c>
-#else
-# include <sysdeps/ieee754/dbl-64/s_fma.c>
-#endif
+++ /dev/null
-#ifdef __SOFTFP__
-# include <soft-fp/fmasf4.c>
-#else
-# include <sysdeps/ieee754/dbl-64/s_fmaf.c>
-#endif
--- /dev/null
+ifeq ($(subdir),math)
+CPPFLAGS += -I../soft-fp
+endif
--- /dev/null
+/* Implement fma using soft-fp.
+ Copyright (C) 2013-2017 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.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file into
+ combinations with other programs, and to distribute those
+ combinations without any restriction coming from the use of this
+ file. (The Lesser General Public License restrictions do apply in
+ other respects; for example, they cover modification of the file,
+ and distribution when not linked into a combine executable.)
+
+ 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/>. */
+
+#include <math.h>
+#include <libc-diag.h>
+#include <libm-alias-double.h>
+
+/* R_e is not set in cases where it is not used in packing, but the
+ compiler does not see that it is set in all cases where it is
+ used, resulting in warnings that it may be used uninitialized.
+ The location of the warning differs in different versions of GCC,
+ it may be where R is defined using a macro or it may be where the
+ macro is defined. */
+DIAG_PUSH_NEEDS_COMMENT;
+DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+
+#include "soft-fp.h"
+#include "double.h"
+
+double
+__fma (double a, double b, double c)
+{
+ FP_DECL_EX;
+ FP_DECL_D (A);
+ FP_DECL_D (B);
+ FP_DECL_D (C);
+ FP_DECL_D (R);
+ double r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_D (A, a);
+ FP_UNPACK_D (B, b);
+ FP_UNPACK_D (C, c);
+ FP_FMA_D (R, A, B, C);
+ FP_PACK_D (r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
+DIAG_POP_NEEDS_COMMENT;
+
+#ifndef __fma
+libm_alias_double (__fma, fma)
+#endif
--- /dev/null
+/* Implement fmaf using soft-fp.
+ Copyright (C) 2013-2017 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.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file into
+ combinations with other programs, and to distribute those
+ combinations without any restriction coming from the use of this
+ file. (The Lesser General Public License restrictions do apply in
+ other respects; for example, they cover modification of the file,
+ and distribution when not linked into a combine executable.)
+
+ 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/>. */
+
+#include <math.h>
+#include <libc-diag.h>
+#include <libm-alias-float.h>
+
+/* R_e is not set in cases where it is not used in packing, but the
+ compiler does not see that it is set in all cases where it is
+ used, resulting in warnings that it may be used uninitialized.
+ The location of the warning differs in different versions of GCC,
+ it may be where R is defined using a macro or it may be where the
+ macro is defined. */
+DIAG_PUSH_NEEDS_COMMENT;
+DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+
+#include "soft-fp.h"
+#include "single.h"
+
+float
+__fmaf (float a, float b, float c)
+{
+ FP_DECL_EX;
+ FP_DECL_S (A);
+ FP_DECL_S (B);
+ FP_DECL_S (C);
+ FP_DECL_S (R);
+ float r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_S (A, a);
+ FP_UNPACK_S (B, b);
+ FP_UNPACK_S (C, c);
+ FP_FMA_S (R, A, B, C);
+ FP_PACK_S (r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
+DIAG_POP_NEEDS_COMMENT;
+
+#ifndef __fmaf
+libm_alias_float (__fma, fma)
+#endif
--- /dev/null
+/* Implement fmal using soft-fp.
+ Copyright (C) 2013-2017 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.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file into
+ combinations with other programs, and to distribute those
+ combinations without any restriction coming from the use of this
+ file. (The Lesser General Public License restrictions do apply in
+ other respects; for example, they cover modification of the file,
+ and distribution when not linked into a combine executable.)
+
+ 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/>. */
+
+#include <math.h>
+#include <libc-diag.h>
+#include <libm-alias-ldouble.h>
+
+/* R_e is not set in cases where it is not used in packing, but the
+ compiler does not see that it is set in all cases where it is
+ used, resulting in warnings that it may be used uninitialized.
+ The location of the warning differs in different versions of GCC,
+ it may be where R is defined using a macro or it may be where the
+ macro is defined. */
+DIAG_PUSH_NEEDS_COMMENT;
+DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+
+#include "soft-fp.h"
+#include "quad.h"
+
+long double
+__fmal (long double a, long double b, long double c)
+{
+ FP_DECL_EX;
+ FP_DECL_Q (A);
+ FP_DECL_Q (B);
+ FP_DECL_Q (C);
+ FP_DECL_Q (R);
+ long double r;
+
+ FP_INIT_ROUNDMODE;
+ FP_UNPACK_Q (A, a);
+ FP_UNPACK_Q (B, b);
+ FP_UNPACK_Q (C, c);
+ FP_FMA_Q (R, A, B, C);
+ FP_PACK_Q (r, R);
+ FP_HANDLE_EXCEPTIONS;
+
+ return r;
+}
+DIAG_POP_NEEDS_COMMENT;
+
+libm_alias_ldouble (__fma, fma)
--- /dev/null
+ieee754/soft-fp
+++ /dev/null
-#include <soft-fp/fmadf4.c>
+++ /dev/null
-#include <soft-fp/fmasf4.c>
wordsize-32
# MicroBlaze uses IEEE 754 floating point.
+ieee754/soft-fp
ieee754/flt-32
ieee754/dbl-64
+++ /dev/null
-#include <soft-fp/fmadf4.c>
+++ /dev/null
-#include <soft-fp/fmasf4.c>
+++ /dev/null
-#ifdef __mips_hard_float
-# include <sysdeps/ieee754/dbl-64/s_fma.c>
-#else
-# include <soft-fp/fmadf4.c>
-#endif
+++ /dev/null
-#ifdef __mips_hard_float
-# include <sysdeps/ieee754/dbl-64/s_fmaf.c>
-#else
-# include <soft-fp/fmasf4.c>
-#endif
# error "long double fma being compiled for o32 ABI"
#endif
-#include <soft-fp/fmatf4.c>
+#include <sysdeps/ieee754/soft-fp/s_fmal.c>
--- /dev/null
+ieee754/soft-fp
--- /dev/null
+#include <sysdeps/ieee754/dbl-64/s_fma.c>
--- /dev/null
+ieee754/soft-fp
--- /dev/null
+#include <sysdeps/ieee754/dbl-64/s_fma.c>
--- /dev/null
+ieee754/soft-fp
wordsize-32
+ieee754/soft-fp
ieee754/dbl-64
ieee754/flt-32
+++ /dev/null
-#include <soft-fp/fmadf4.c>
+++ /dev/null
-#include <soft-fp/fmasf4.c>
--- /dev/null
+ieee754/soft-fp
+++ /dev/null
-#ifdef __SH_FPU_ANY__
-# include <sysdeps/ieee754/dbl-64/s_fma.c>
-#else
-# include <soft-fp/fmadf4.c>
-#endif
+++ /dev/null
-#ifdef __SH_FPU_ANY__
-# include <sysdeps/ieee754/dbl-64/s_fmaf.c>
-#else
-# include <soft-fp/fmasf4.c>
-#endif
+ieee754/soft-fp
ieee754/dbl-64
ieee754/flt-32
+++ /dev/null
-#include <soft-fp/fmadf4.c>
+++ /dev/null
-#include <soft-fp/fmasf4.c>