This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: PowerPC LE strchr
- From: Adhemerval Zanella <azanella at linux dot vnet dot ibm dot com>
- To: libc-alpha at sourceware dot org
- Date: Fri, 23 Aug 2013 10:37:50 -0300
- Subject: Re: PowerPC LE strchr
- References: <20130809052159 dot GL3294 at bubble dot grove dot modra dot org>
Hi Alan, this patch is ok, thanks.
On 09-08-2013 02:21, Alan Modra wrote:
> 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.
>