Skip to content

Commit

Permalink
powerpc: wordcopy/memmove cleanup for ppc64
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Adhemerval Zanella committed Feb 9, 2015
1 parent 18e270a commit b269211
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 95 deletions.
9 changes: 9 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
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.
Expand Down
7 changes: 3 additions & 4 deletions sysdeps/powerpc/powerpc64/multiarch/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
18 changes: 16 additions & 2 deletions sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>
19 changes: 0 additions & 19 deletions sysdeps/powerpc/powerpc64/multiarch/wordcopy-power6.c

This file was deleted.

4 changes: 4 additions & 0 deletions sysdeps/powerpc/powerpc64/multiarch/wordcopy-ppc64.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
70 changes: 0 additions & 70 deletions sysdeps/powerpc/powerpc64/multiarch/wordcopy.c

This file was deleted.

0 comments on commit b269211

Please sign in to comment.