PowerPC: optimized memmove for POWER7/PPC64
commit5d55f9b05ecb85b7a543f641829479cfb081f380
authorAdhemerval Zanella <azanella@linux.vnet.ibm.com>
Fri, 20 Jun 2014 17:55:16 +0000 (20 12:55 -0500)
committerAdhemerval Zanella <azanella@linux.vnet.ibm.com>
Thu, 28 Aug 2014 13:29:49 +0000 (28 09:29 -0400)
treebe42c7f465781b8141e12f7bfa4a327b151f179b
parentdde00e9914370ddd90c9bbc4f3f0e455efae4b47
PowerPC: optimized memmove for POWER7/PPC64

This patch adds an optimized memmove optimization for POWER7/powerpc64.
Basically the idea is to use the memcpy for POWER7 on non-overlapped
memory regions and a optimized backward memcpy for memory regions
that overlap (similar to the idea of string/memmove.c).

The backward memcpy algorithm used is similar the one use for memcpy for
POWER7, with adjustments done for alignment.  The difference is memory
is always aligned to 16 bytes before using VSX/altivec instructions.
ChangeLog
string/bcopy.c
sysdeps/powerpc/powerpc64/multiarch/Makefile
sysdeps/powerpc/powerpc64/multiarch/bcopy-ppc64.c [copied from string/bcopy.c with 77% similarity]
sysdeps/powerpc/powerpc64/multiarch/bcopy.c [copied from string/bcopy.c with 65% similarity]
sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c
sysdeps/powerpc/powerpc64/multiarch/memmove-power7.S [copied from string/bcopy.c with 50% similarity]
sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c [copied from string/bcopy.c with 71% similarity]
sysdeps/powerpc/powerpc64/multiarch/memmove.c [new file with mode: 0644]
sysdeps/powerpc/powerpc64/power7/bcopy.c [new file with mode: 0644]
sysdeps/powerpc/powerpc64/power7/memmove.S [new file with mode: 0644]