aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-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
6 files changed, 32 insertions, 95 deletions
diff --git a/ChangeLog b/ChangeLog
index f5c29413aa..89443945f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,15 @@
2015-02-09 Adhemerval Zanellla <azanella@linux.vnet.ibm.com>
* sysdeps/powerpc/powerpc64/multiarch/Makefile [sysdep_routines]:
+ Remove wordcopy-power6 obejct.
+ * sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c (__memmove_ppc):
+ Use local call for wordcopy and memcpy symbols.
+ * sysdeps/powerpc/powerpc64/multiarch/wordcopy-power6.c: Remove file.
+ * sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c: Add default
+ implementation for loader.
+ * sysdeps/powerpc/powerpc64/multiarch/wordcopy.c: Remove file.
+
+ * sysdeps/powerpc/powerpc64/multiarch/Makefile [sysdep_routines]:
Remove wordcopy-power7 object.
* sysdeps/powerpc/powerpc64/multiarch/wordcopy-power7.c: Remove file.
* sysdeps/powerpc/powerpc64/multiarch/wordcopy.c
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