[BZ#13926]
Currently __bswap_64 is not defined at all for non-GCC compilers.
Define it but guard it with __GLIBC_HAVE_LONG_LONG.
endian.h uses __bswap_64, make the functions only available
if __GLIBC_HAVE_LONG_LONG is defined.
I've improved the following implementation of memcpy:
"sysdeps/i386/i686/multiarch/memcpy-ssse3.S".
The patch includes some minor style fixes, but the important part is
just using prefetch loops for the case:
DATA_CACHE_SIZE_HALF <= len < SHARED_CACHE_SIZE_HALF and
src and dst pointers have unequal 16 byte alignments.
This gives from 6% - 50% performance boost on the atom machine, about
24,73% in geometric mean.
* sysdeps/sparc/sparc64/multiarch/memcpy.S: Provide a hidden def to
the IFUNC routine in the libc case.
* sysdeps/sparc/sparc64/multiarch/memcpy.S: Likewise.
* sysdeps/sparc/sparc32/sparcv9/multiarch/rtld-memset.c: New file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/rtld-memcpy.c: New file.
* sysdeps/sparc/sparc32/sparcv9/rtld-memset.c: New file.
* sysdeps/sparc/sparc32/sparcv9/rtld-memcpy.c: New file.
* sysdeps/sparc/sparc64/multiarch/rtld-memset.c: New file.
* sysdeps/sparc/sparc64/multiarch/rtld-memcpy.c: New file.
* sysdeps/sparc/sparc64/rtld-memset.c: New file.
* sysdeps/sparc/sparc64/rtld-memcpy.c: New file.
* sysdeps/sparc/Makefile: Add -fPIC to ASFLAGS-.os here....
* sysdeps/sparc/sparc32/Makefile: rather than here...
* sysdeps/sparc/sparc64/Makefile: and here.
* sysdeps/s390/s390-64/elf/bsd-_setjmp.S: Moved to ...
* sysdeps/s390/s390-64/bsd-_setjmp.S: ... here.
* sysdeps/s390/s390-64/elf/bsd-setjmp.S: Moved to ...
* sysdeps/s390/s390-64/bsd-setjmp.S: ... here.
* sysdeps/s390/s390-64/elf/setjmp.S: Moved to ...
* sysdeps/s390/s390-64/setjmp.S: ... here.
* sysdeps/s390/s390-64/elf/configure.in: Moved to ...
* sysdeps/s390/s390-64/configure.in: ... here
* sysdeps/s390/s390-64/elf/configure: Delete file.
* sysdeps/s390/s390-64/elf/start.S: Moved to ...
* sysdeps/s390/s390-64/start.S: ... here.
* sysdeps/s390/s390-64/elf/configure: Delete.
* sysdeps/s390/s390-32/elf/bsd-_setjmp.S: Moved to ...
* sysdeps/s390/s390-32/bsd-_setjmp.S: ... here.
* sysdeps/s390/s390-32/elf/bsd-setjmp.S: Moved to ...
* sysdeps/s390/s390-32/bsd-setjmp.S: ... here.
* sysdeps/s390/s390-32/elf/setjmp.S: Moved to ...
* sysdeps/s390/s390-32/setjmp.S: ... here.
* sysdeps/s390/s390-32/elf/configure.in: Moved to ...
* sysdeps/s390/s390-32/configure.in: ... here.
* sysdeps/s390/s390-32/elf/configure: Delete file.
* sysdeps/s390/s390-32/elf/start.S: Moved to ...
* sysdeps/s390/s390-32/start.S: ... here.
* sysdeps/powerpc/elf/ifunc-sel.h: Moved to ...
* sysdeps/powerpc/ifunc-sel.h: ... here.
* sysdeps/powerpc/elf/rtld-global-offsets.sym: Moved to ...
* sysdeps/powerpc/rtld-global-offsets.sym: ... here.