glibc/sysdeps/powerpc
Alan Modra db9b4570c5 PowerPC LE strlen
http://sourceware.org/ml/libc-alpha/2013-08/msg00097.html

This is the first of nine patches adding little-endian support to the
existing optimised string and memory functions.  I did spend some
time with a power7 simulator looking at cycle by cycle behaviour for
memchr, but most of these patches have not been run on cpu simulators
to check that we are going as fast as possible.  I'm sure PowerPC can
do better.  However, the little-endian support mostly leaves main
loops unchanged, so I'm banking on previous authors having done a
good job on big-endian..  As with most code you stare at long enough,
I found some improvements for big-endian too.

Little-endian support for strlen.  Like most of the string functions,
I leave the main word or multiple-word loops substantially unchanged,
just needing to modify the tail.

Removing the branch in the power7 functions is just a tidy.  .align
produces a branch anyway.  Modifying regs in the non-power7 functions
is to suit the new little-endian tail.

	* sysdeps/powerpc/powerpc64/power7/strlen.S (strlen): Add little-endian
	support.  Don't branch over align.
	* sysdeps/powerpc/powerpc32/power7/strlen.S: Likewise.
	* sysdeps/powerpc/powerpc64/strlen.S (strlen): Add little-endian support.
	Rearrange tmp reg use to suit.  Comment.
	* sysdeps/powerpc/powerpc32/strlen.S: Likewise.
2013-10-04 10:39:32 +09:30
..
bits PowerPC floating point little-endian [7 of 15] 2013-10-04 10:34:14 +09:30
fpu PowerPC floating point little-endian [11 of 15] 2013-10-04 10:35:21 +09:30
power4/fpu Remove usage of ONE macro 2013-03-29 16:53:05 +05:30
power5+/fpu PowerPC: modf optimization fix 2013-04-26 13:00:56 -05:00
powerpc32 PowerPC LE strlen 2013-10-04 10:39:32 +09:30
powerpc64 PowerPC LE strlen 2013-10-04 10:39:32 +09:30
sys/platform PowerPC: Program Priority Register support 2013-05-24 13:29:30 -05:00
abort-instr.h Update. 2002-09-15 18:31:23 +00:00
configure Add missing magic to GLIBC_PROVIDES. 2012-10-09 15:41:30 -07:00
configure.in Update. 2004-05-28 21:19:35 +00:00
dl-procinfo.c PowerPC: Define AT_HWCAP2 bits and AT_HWCAP2 handling for POWER8. 2013-06-28 16:52:49 -05:00
dl-procinfo.h PowerPC: Define AT_HWCAP2 bits and AT_HWCAP2 handling for POWER8. 2013-06-28 16:52:49 -05:00
dl-tls.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
ffs.c Make __ffs hidden 2013-09-20 21:25:31 +02:00
fpu_control.h PowerPC floating point little-endian [11 of 15] 2013-10-04 10:35:21 +09:30
gccframe.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
ifunc-sel.h Move sysdeps/powerpc/elf files 2012-03-28 09:25:31 +02:00
Implies PowerPC: unify math_ldbl.h implementations 2013-03-08 11:07:15 -03:00
jmpbuf-offsets.h PowerPC LE setjmp/longjmp 2013-10-04 10:37:59 +09:30
jmpbuf-unwind.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
ldsodefs.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
locale-defines.sym Optimized strcasecmp for Power7 2011-12-17 20:32:59 -05:00
longjmp.c PowerPC ugly symbol versioning 2013-10-04 10:38:28 +09:30
machine-gmon.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
Makefile PowerPC: Define AT_HWCAP2 bits and AT_HWCAP2 handling for POWER8. 2013-06-28 16:52:49 -05:00
math-tests.h Refer to two GCC PRs. 2013-04-03 14:13:44 +02:00
memmove.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
memusage.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
mp_clz_tab.c Update. 2002-03-14 20:48:50 +00:00
novmx-longjmp.c PowerPC ugly symbol versioning 2013-10-04 10:38:28 +09:30
novmx-sigjmp.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
novmxsetjmp.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
rtld-global-offsets.sym PowerPC: Define AT_HWCAP2 bits and AT_HWCAP2 handling for POWER8. 2013-06-28 16:52:49 -05:00
sched_cpucount.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
sigjmp.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
stackinfo.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
strcat.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
sysdep.h PowerPC floating point little-endian [12 of 15] 2013-10-04 10:35:43 +09:30
test-arith.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
test-arithf.c Update. 1997-08-10 18:37:15 +00:00
test-gettimebase.c Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
tls-macros.h Split tls-macros.h in sysdeps directories. 2012-07-19 17:04:04 -03:00
tst-stack-align.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
Versions Update. 2004-02-14 05:16:57 +00:00