mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-07 10:00:07 +00:00
664318c3eb
http://sourceware.org/ml/libc-alpha/2013-08/msg00101.html Adds little-endian support to optimised strchr assembly. I've also tweaked the big-endian code a little. In power7/strchr.S there's a check in the tail of the function that we didn't match 0 before finding a c match, done by comparing leading zero counts. It's just as valid, and quicker, to compare the raw output from cmpb. Another little tweak is to use rldimi/insrdi in place of rlwimi for the power7 strchr functions. Since rlwimi is cracked, it is a few cycles slower. rldimi can be used on the 32-bit power7 functions too. * sysdeps/powerpc/powerpc64/power7/strchr.S (strchr): Add little-endian support. Correct typos, formatting. Optimize tail. Use insrdi rather than rlwimi. * sysdeps/powerpc/powerpc32/power7/strchr.S: Likewise. * sysdeps/powerpc/powerpc64/power7/strchrnul.S (__strchrnul): Add little-endian support. Correct typos. * sysdeps/powerpc/powerpc32/power7/strchrnul.S: Likewise. Use insrdi rather than rlwimi. * sysdeps/powerpc/powerpc64/strchr.S (rTMP4, rTMP5): Define. Use in loop and entry code to keep "and." results. (strchr): Add little-endian support. Comment. Move cntlzd earlier in tail. * sysdeps/powerpc/powerpc32/strchr.S: Likewise. |
||
---|---|---|
.. | ||
fpu | ||
Implies | ||
Makefile | ||
memchr.S | ||
memcmp.S | ||
memcpy.S | ||
mempcpy.S | ||
memrchr.S | ||
memset.S | ||
rawmemchr.S | ||
strcasecmp_l.S | ||
strcasecmp.S | ||
strchr.S | ||
strchrnul.S | ||
strlen.S | ||
strncmp.S | ||
strnlen.S |