This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
RE: rawmemchr
- From: "Dave Korn" <dave dot korn at artimi dot com>
- To: <cygwin-developers at cygwin dot com>, <newlib at sources dot redhat dot com>
- Date: Wed, 21 May 2008 15:01:55 +0100
- Subject: RE: rawmemchr
- References: <483386B5.20507@byu.net> <20080521032228.GA21932@ednor.casa.cgf.cx> <48339D45.3040307@byu.net>
Eric Blake wrote on 21 May 2008 04:56:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> According to Christopher Faylor on 5/20/2008 9:22 PM:
>>
>> Unless there's something I'm missing, cygwin should be using the assembly
>> language routines in string.h.
>
> True enough. But look at machine/i386/strchr.S - it skips straight to L9
> if the string is unaligned, rather than parsing the first few bytes and
> benefiting from the aligned algorithm on the bulk of the search. And in
> the special case of the target byte of 0, it still wastes time creating a
> second mask, and performing two tests instead of one inside the L10 loop.
> ~ The same principles should apply of providing rawmemchr in x86 assembly
> to make strchr(p,0) behave almost twice as fast as it currently does.
Maybe you could show a few timing measurements from realistic testcases at
this point in the discussion? I haven't felt comfortable trying to directly
infer from instruction counts to real-time clock cycles any time in the past
two decades myself, there are so many confounding factors these days that
I'm not even confident of being able to validly reason about it any more.
cheers,
DaveK
--
Can't think of a witty .sigline today....