From a634adda5af00c5936e3e7a5e2950c05c14981d3 Mon Sep 17 00:00:00 2001 From: Keith Packard via Newlib Date: Tue, 1 Sep 2020 12:49:49 -0700 Subject: libm/machine/arm: Rename s*_fma.c -> s*_fma_arm.c This is required to avoid colliding with files built from libm/common that would end up with the same object name. When libm.a was constructed from the individual sub-libraries, the contents of the libm/common files would be replaced by that from libm/machine/arm with the same name. Signed-off-by: Keith Packard --- newlib/libm/machine/arm/Makefile.am | 4 +-- newlib/libm/machine/arm/Makefile.in | 24 +++++++++--------- newlib/libm/machine/arm/s_fma.c | 48 ------------------------------------ newlib/libm/machine/arm/s_fma_arm.c | 48 ++++++++++++++++++++++++++++++++++++ newlib/libm/machine/arm/sf_fma.c | 48 ------------------------------------ newlib/libm/machine/arm/sf_fma_arm.c | 48 ++++++++++++++++++++++++++++++++++++ 6 files changed, 110 insertions(+), 110 deletions(-) delete mode 100644 newlib/libm/machine/arm/s_fma.c create mode 100644 newlib/libm/machine/arm/s_fma_arm.c delete mode 100644 newlib/libm/machine/arm/sf_fma.c create mode 100644 newlib/libm/machine/arm/sf_fma_arm.c diff --git a/newlib/libm/machine/arm/Makefile.am b/newlib/libm/machine/arm/Makefile.am index 09a266c43..ccb134d6a 100644 --- a/newlib/libm/machine/arm/Makefile.am +++ b/newlib/libm/machine/arm/Makefile.am @@ -10,14 +10,14 @@ LIB_SOURCES = \ ef_sqrt.c \ s_ceil.c \ s_floor.c \ - s_fma.c \ + s_fma_arm.c \ s_nearbyint.c \ s_rint.c \ s_round.c \ s_trunc.c \ sf_ceil.c \ sf_floor.c \ - sf_fma.c \ + sf_fma_arm.c \ sf_nearbyint.c \ sf_rint.c \ sf_round.c \ diff --git a/newlib/libm/machine/arm/Makefile.in b/newlib/libm/machine/arm/Makefile.in index e7bca5f66..49c536d1c 100644 --- a/newlib/libm/machine/arm/Makefile.in +++ b/newlib/libm/machine/arm/Makefile.in @@ -72,10 +72,10 @@ lib_a_AR = $(AR) $(ARFLAGS) lib_a_LIBADD = am__objects_1 = lib_a-e_sqrt.$(OBJEXT) lib_a-ef_sqrt.$(OBJEXT) \ lib_a-s_ceil.$(OBJEXT) lib_a-s_floor.$(OBJEXT) \ - lib_a-s_fma.$(OBJEXT) lib_a-s_nearbyint.$(OBJEXT) \ + lib_a-s_fma_arm.$(OBJEXT) lib_a-s_nearbyint.$(OBJEXT) \ lib_a-s_rint.$(OBJEXT) lib_a-s_round.$(OBJEXT) \ lib_a-s_trunc.$(OBJEXT) lib_a-sf_ceil.$(OBJEXT) \ - lib_a-sf_floor.$(OBJEXT) lib_a-sf_fma.$(OBJEXT) \ + lib_a-sf_floor.$(OBJEXT) lib_a-sf_fma_arm.$(OBJEXT) \ lib_a-sf_nearbyint.$(OBJEXT) lib_a-sf_rint.$(OBJEXT) \ lib_a-sf_round.$(OBJEXT) lib_a-sf_trunc.$(OBJEXT) \ lib_a-feclearexcept.$(OBJEXT) lib_a-fe_dfl_env.$(OBJEXT) \ @@ -216,14 +216,14 @@ LIB_SOURCES = \ ef_sqrt.c \ s_ceil.c \ s_floor.c \ - s_fma.c \ + s_fma_arm.c \ s_nearbyint.c \ s_rint.c \ s_round.c \ s_trunc.c \ sf_ceil.c \ sf_floor.c \ - sf_fma.c \ + sf_fma_arm.c \ sf_nearbyint.c \ sf_rint.c \ sf_round.c \ @@ -344,11 +344,11 @@ lib_a-s_floor.o: s_floor.c lib_a-s_floor.obj: s_floor.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_floor.obj `if test -f 's_floor.c'; then $(CYGPATH_W) 's_floor.c'; else $(CYGPATH_W) '$(srcdir)/s_floor.c'; fi` -lib_a-s_fma.o: s_fma.c - $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fma.o `test -f 's_fma.c' || echo '$(srcdir)/'`s_fma.c +lib_a-s_fma_arm.o: s_fma_arm.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fma_arm.o `test -f 's_fma_arm.c' || echo '$(srcdir)/'`s_fma_arm.c -lib_a-s_fma.obj: s_fma.c - $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fma.obj `if test -f 's_fma.c'; then $(CYGPATH_W) 's_fma.c'; else $(CYGPATH_W) '$(srcdir)/s_fma.c'; fi` +lib_a-s_fma_arm.obj: s_fma_arm.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_fma_arm.obj `if test -f 's_fma_arm.c'; then $(CYGPATH_W) 's_fma_arm.c'; else $(CYGPATH_W) '$(srcdir)/s_fma_arm.c'; fi` lib_a-s_nearbyint.o: s_nearbyint.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-s_nearbyint.o `test -f 's_nearbyint.c' || echo '$(srcdir)/'`s_nearbyint.c @@ -386,11 +386,11 @@ lib_a-sf_floor.o: sf_floor.c lib_a-sf_floor.obj: sf_floor.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_floor.obj `if test -f 'sf_floor.c'; then $(CYGPATH_W) 'sf_floor.c'; else $(CYGPATH_W) '$(srcdir)/sf_floor.c'; fi` -lib_a-sf_fma.o: sf_fma.c - $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fma.o `test -f 'sf_fma.c' || echo '$(srcdir)/'`sf_fma.c +lib_a-sf_fma_arm.o: sf_fma_arm.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fma_arm.o `test -f 'sf_fma_arm.c' || echo '$(srcdir)/'`sf_fma_arm.c -lib_a-sf_fma.obj: sf_fma.c - $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fma.obj `if test -f 'sf_fma.c'; then $(CYGPATH_W) 'sf_fma.c'; else $(CYGPATH_W) '$(srcdir)/sf_fma.c'; fi` +lib_a-sf_fma_arm.obj: sf_fma_arm.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_fma_arm.obj `if test -f 'sf_fma_arm.c'; then $(CYGPATH_W) 'sf_fma_arm.c'; else $(CYGPATH_W) '$(srcdir)/sf_fma_arm.c'; fi` lib_a-sf_nearbyint.o: sf_nearbyint.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sf_nearbyint.o `test -f 'sf_nearbyint.c' || echo '$(srcdir)/'`sf_nearbyint.c diff --git a/newlib/libm/machine/arm/s_fma.c b/newlib/libm/machine/arm/s_fma.c deleted file mode 100644 index f945419b5..000000000 --- a/newlib/libm/machine/arm/s_fma.c +++ /dev/null @@ -1,48 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-3-Clause - * - * Copyright © 2020 Keith Packard - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * - * 3. Neither the name of the copyright holder nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include "math_config.h" - -#if HAVE_FAST_FMA - -double -fma (double x, double y, double z) -{ - asm ("vfma.f64 %P0, %P1, %P2" : "=w" (z) : "w" (x), "w" (y)); - return z; -} - -#endif diff --git a/newlib/libm/machine/arm/s_fma_arm.c b/newlib/libm/machine/arm/s_fma_arm.c new file mode 100644 index 000000000..f945419b5 --- /dev/null +++ b/newlib/libm/machine/arm/s_fma_arm.c @@ -0,0 +1,48 @@ +/* + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright © 2020 Keith Packard + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include "math_config.h" + +#if HAVE_FAST_FMA + +double +fma (double x, double y, double z) +{ + asm ("vfma.f64 %P0, %P1, %P2" : "=w" (z) : "w" (x), "w" (y)); + return z; +} + +#endif diff --git a/newlib/libm/machine/arm/sf_fma.c b/newlib/libm/machine/arm/sf_fma.c deleted file mode 100644 index 4befd9017..000000000 --- a/newlib/libm/machine/arm/sf_fma.c +++ /dev/null @@ -1,48 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-3-Clause - * - * Copyright © 2020 Keith Packard - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * - * 3. Neither the name of the copyright holder nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include "math_config.h" - -#if HAVE_FAST_FMAF - -float -fmaf (float x, float y, float z) -{ - asm ("vfma.f32 %0, %1, %2" : "=t" (z) : "t" (x), "t" (y)); - return z; -} - -#endif diff --git a/newlib/libm/machine/arm/sf_fma_arm.c b/newlib/libm/machine/arm/sf_fma_arm.c new file mode 100644 index 000000000..4befd9017 --- /dev/null +++ b/newlib/libm/machine/arm/sf_fma_arm.c @@ -0,0 +1,48 @@ +/* + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright © 2020 Keith Packard + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include "math_config.h" + +#if HAVE_FAST_FMAF + +float +fmaf (float x, float y, float z) +{ + asm ("vfma.f32 %0, %1, %2" : "=t" (z) : "t" (x), "t" (y)); + return z; +} + +#endif -- cgit v1.2.3