From 664318c3eb07032e2bfcf47cb2aa3c89280c19e7 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Sat, 17 Aug 2013 18:46:05 +0930 Subject: PowerPC LE strchr 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. --- ChangeLog | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index bbe5836409..74c6203c97 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +2013-10-04 Alan Modra + + * 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. + 2013-10-04 Alan Modra * sysdeps/powerpc/powerpc64/strcpy.S: Add little-endian support: -- cgit v1.2.3