glibc/sysdeps
Alan Modra fe6e95d717 PowerPC LE memcmp
http://sourceware.org/ml/libc-alpha/2013-08/msg00102.html

This is a rather large patch due to formatting and renaming.  The
formatting changes were to make it possible to compare power7 and
power4 versions of memcmp.  Using different register defines came
about while I was wrestling with the code, trying to find spare
registers at one stage.  I found it much simpler if we refer to a reg
by the same name throughout a function, so it's better if short-term
multiple use regs like rTMP are referred to using their register
number.  I made the cr field usage changes when attempting to reload
rWORDn regs in the exit path to byte swap before comparing when
little-endian.  That proved a bad idea due to the pipelining involved
in the main loop;  Offsets to reload the regs were different first
time around the loop..  Anyway, I left the cr field usage changes in
place for consistency.

Aside from these more-or-less cosmetic changes, I fixed a number of
places where an early exit path restores regs unnecessarily, removed
some dead code, and optimised one or two exits.

	* sysdeps/powerpc/powerpc64/power7/memcmp.S: Add little-endian support.
	Formatting.  Consistently use rXXX register defines or rN defines.
	Use early exit labels that avoid restoring unused non-volatile regs.
	Make cr field use more consistent with rWORDn compares.  Rename
	regs used as shift registers for unaligned loop, using rN defines
	for short lifetime/multiple use regs.
	* sysdeps/powerpc/powerpc64/power4/memcmp.S: Likewise.
	* sysdeps/powerpc/powerpc32/power7/memcmp.S: Likewise.  Exit with
	addi 1,1,64 to pop stack frame.  Simplify return value code.
	* sysdeps/powerpc/powerpc32/power4/memcmp.S: Likewise.
2013-10-04 10:40:56 +09:30
..
generic BZ #15754: Fix test case for ARM. 2013-09-23 01:44:38 -04:00
gnu Remove --disable-versioning. 2013-09-04 15:25:42 +00:00
i386 BZ #15754: CVE-2013-4788 2013-09-23 00:52:09 -04:00
ieee754 PowerPC floating point little-endian [6 of 15] 2013-10-04 10:33:21 +09:30
init_array Add sysdeps/init_array to produce empty crt[in].o and use .preinit_array for gcrt1.o 2013-03-12 12:50:13 -07:00
mach sysdeps/mach/hurd/i386/tls.h: Remove TLS_INIT_TP_EXPENSIVE. 2013-09-24 09:25:53 +01:00
posix Properly cache the result from looking up the nss database config 2013-09-30 10:29:13 +02:00
powerpc PowerPC LE memcmp 2013-10-04 10:40:56 +09:30
pthread Fix typos. 2013-08-21 19:48:48 +02:00
s390 BZ #15754: CVE-2013-4788 2013-09-23 00:52:09 -04:00
sh Add SH implementation of stackguard-macros.h. 2013-09-27 10:59:02 +09:00
sparc BZ #15754: CVE-2013-4788 2013-09-23 00:52:09 -04:00
unix PowerPC SIGSTKSZ 2013-10-04 10:39:11 +09:30
wordsize-32 Remove --disable-versioning. 2013-09-04 15:25:42 +00:00
wordsize-64 Move dummy glob64.c alongside glob.c that defines glob64. 2013-05-06 16:11:11 -07:00
x86 Fix typos. 2013-08-21 19:48:48 +02:00
x86_64 PowerPC floating point little-endian [1 of 15] 2013-10-04 10:31:41 +09:30