about summary refs log tree commit diff
path: root/sysdeps/powerpc/powerpc64/multiarch
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/powerpc/powerpc64/multiarch')
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/Makefile7
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c18
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wordcopy-power6.c19
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c4
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/wordcopy.c70
5 files changed, 23 insertions, 95 deletions
diff --git a/sysdeps/powerpc/powerpc64/multiarch/Makefile b/sysdeps/powerpc/powerpc64/multiarch/Makefile
index 0111ad6ab9..17265bd275 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/Makefile
+++ b/sysdeps/powerpc/powerpc64/multiarch/Makefile
@@ -11,19 +11,18 @@ sysdep_routines += memcpy-power7 memcpy-a2 memcpy-power6 memcpy-cell \
 		   strncmp-power8 strncmp-power7 strncmp-power4 strncmp-ppc64 \
 		   strchr-power7 strchr-ppc64 \
 		   strchrnul-power7 strchrnul-ppc64 \
-		   wordcopy-power6 wordcopy-ppc64 \
 		   strcpy-power8 strcpy-power7 strcpy-ppc64 stpcpy-power8 \
 		   stpcpy-power7 stpcpy-ppc64 \
 		   strrchr-power7 strrchr-ppc64 strncat-power7 strncat-ppc64 \
 		   strncpy-power7 strncpy-ppc64 \
 		   stpncpy-power8 stpncpy-power7 stpncpy-ppc64 \
 		   strcmp-power8 strcmp-power7 strcmp-ppc64 \
-		   strcat-power8 strcat-power7 strcat-ppc64 memmove-power7 \
-		   memmove-ppc64 bcopy-ppc64 strncpy-power8
+		   strcat-power8 strcat-power7 strcat-ppc64 \
+		   memmove-power7 memmove-ppc64 wordcopy-ppc64 bcopy-ppc64 \
+		   strncpy-power8
 
 CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops
 CFLAGS-strncase_l-power7.c += -mcpu=power7 -funroll-loops
-CFLAGS-wordcopy-power6.c += -mcpu=power6
 endif
 
 ifeq ($(subdir),wcsmbs)
diff --git a/sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c
index 0ade49d9fb..a2d8790030 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c
@@ -16,13 +16,27 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <string.h>
+#include <memcopy.h>
 
+extern __typeof (_wordcopy_fwd_aligned) _wordcopy_fwd_aligned_ppc;
+extern __typeof (_wordcopy_fwd_dest_aligned) _wordcopy_fwd_dest_aligned_ppc;
+extern __typeof (_wordcopy_bwd_aligned) _wordcopy_bwd_aligned_ppc;
+extern __typeof (_wordcopy_bwd_dest_aligned) _wordcopy_bwd_dest_aligned_ppc;
+
+#define _wordcopy_fwd_aligned       _wordcopy_fwd_aligned_ppc
+#define _wordcopy_fwd_dest_aligned  _wordcopy_fwd_dest_aligned_ppc
+#define _wordcopy_bwd_aligned       _wordcopy_bwd_aligned_ppc
+#define _wordcopy_bwd_dest_aligned  _wordcopy_bwd_dest_aligned_ppc
+
+extern __typeof (memmove) __memmove_ppc attribute_hidden;
 #define MEMMOVE __memmove_ppc
+
+extern __typeof (memcpy) __memcpy_ppc attribute_hidden;
+#define memcpy __memcpy_ppc
+
 #if IS_IN (libc) && defined(SHARED)
 # undef libc_hidden_builtin_def
 # define libc_hidden_builtin_def(name)
 #endif
 
-extern __typeof (memmove) __memmove_ppc attribute_hidden;
-
 #include <string/memmove.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wordcopy-power6.c b/sysdeps/powerpc/powerpc64/multiarch/wordcopy-power6.c
deleted file mode 100644
index 4bd6494b58..0000000000
--- a/sysdeps/powerpc/powerpc64/multiarch/wordcopy-power6.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* wordcopy routines for powerpc64/power6.
-   Copyright (C) 2013-2015 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; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-power6.c>
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c b/sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c
index 5d7b9fdcc2..b8ecda7bb3 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c
@@ -15,4 +15,8 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#if IS_IN (libc)
 #include <sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c>
+#else
+#include <string/wordcopy.c>
+#endif
diff --git a/sysdeps/powerpc/powerpc64/multiarch/wordcopy.c b/sysdeps/powerpc/powerpc64/multiarch/wordcopy.c
deleted file mode 100644
index ec397326cb..0000000000
--- a/sysdeps/powerpc/powerpc64/multiarch/wordcopy.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Multiple versions of wordcopy functions.
-   Copyright (C) 2013-2015 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 IS_IN (libc)
-# include <stddef.h>
-# include <memcopy.h>
-# include <shlib-compat.h>
-# include "init-arch.h"
-
-extern __typeof (_wordcopy_fwd_aligned) _wordcopy_fwd_aligned_ppc
-attribute_hidden;
-extern __typeof (_wordcopy_fwd_aligned) _wordcopy_fwd_aligned_power6
-attribute_hidden;
-
-libc_ifunc (_wordcopy_fwd_aligned,
-	    (hwcap & PPC_FEATURE_ARCH_2_05)
-            ? _wordcopy_fwd_aligned_power6
-            : _wordcopy_fwd_aligned_ppc);
-
-
-extern __typeof (_wordcopy_fwd_dest_aligned) _wordcopy_fwd_dest_aligned_ppc
-attribute_hidden;
-extern __typeof (_wordcopy_fwd_dest_aligned) _wordcopy_fwd_dest_aligned_power6
-attribute_hidden;
-
-libc_ifunc (_wordcopy_fwd_dest_aligned,
-	    (hwcap & PPC_FEATURE_ARCH_2_05)
-            ? _wordcopy_fwd_dest_aligned_power6
-            : _wordcopy_fwd_dest_aligned_ppc);
-
-
-extern __typeof (_wordcopy_bwd_aligned) _wordcopy_bwd_aligned_ppc
-attribute_hidden;
-extern __typeof (_wordcopy_bwd_aligned) _wordcopy_bwd_aligned_power6
-attribute_hidden;
-
-libc_ifunc (_wordcopy_bwd_aligned,
-	    (hwcap & PPC_FEATURE_ARCH_2_05)
-            ? _wordcopy_bwd_aligned_power6
-            : _wordcopy_bwd_aligned_ppc);
-
-
-extern __typeof (_wordcopy_bwd_dest_aligned) _wordcopy_bwd_dest_aligned_ppc
-attribute_hidden;
-extern __typeof (_wordcopy_bwd_dest_aligned) _wordcopy_bwd_dest_aligned_power6
-attribute_hidden;
-
-libc_ifunc (_wordcopy_bwd_dest_aligned,
-	    (hwcap & PPC_FEATURE_ARCH_2_05)
-            ? _wordcopy_bwd_dest_aligned_power6
-            : _wordcopy_bwd_dest_aligned_ppc);
-
-#else
-#include <sysdeps/powerpc/power4/wordcopy.c>
-#endif