about summary refs log tree commit diff
path: root/sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c
diff options
context:
space:
mode:
authorAdhemerval Zanella <azanella@linux.vnet.ibm.com>2015-01-21 07:41:46 -0500
committerAdhemerval Zanella <azanella@linux.vnet.ibm.com>2015-02-09 06:42:28 -0500
commitb269211467795c71ae0ceb0ce79f2fb6614f33c9 (patch)
tree854ef54eb1bb0363f24b75cb532b19133d258e0f /sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c
parent18e270aada9d267679e7b0308a37684cfe3633b4 (diff)
downloadglibc-b269211467795c71ae0ceb0ce79f2fb6614f33c9.tar.gz
glibc-b269211467795c71ae0ceb0ce79f2fb6614f33c9.tar.xz
glibc-b269211467795c71ae0ceb0ce79f2fb6614f33c9.zip
powerpc: wordcopy/memmove cleanup for ppc64
This patch cleanup some multiarch code related to memmmove
optimization. Initial IFUNC support added specialized wordcopy
symbols which turned in local IFUNC calls used by memmove default
implementation.

This change by removing then and used the optimized memmove instead
for supported chips.
Diffstat (limited to 'sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c')
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c18
1 files changed, 16 insertions, 2 deletions
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>