On Oct 24 18:02, Kai Tietz wrote: > 2012/10/24 Christopher Faylor wrote: > > On Wed, Oct 24, 2012 at 11:07:47AM -0400, Ryan Johnson wrote: > >>On 24/10/2012 5:16 AM, Kai Tietz wrote: > >>> Hello, > >>> > >>> this patch replaces the inline-assember used in string.h by C > >>> implementation. > >>> There are three reasons why I want to suggest this. First, the C-code > >>> might > >>> be optimized further by fixed (constant) arguments. Secondly, it is > >>> architecture > >>> independent and so we just need to maintain on code-path. And as > >>> third point, by > >>> inspecting generated assembly code produced by compiler out of C code > >>> vs. inline-assembler > >>> it shows that compiler produces better code. It handles > >>> jump-threading better, and also > >>> improves average executed instructions. > >>Devil's advocate: better-looking code isn't always faster code. > >> > >>However, I'm surprised that code was inline asm in the first place -- no > >>special instructions or unusual control flow -- and would not be at all > >>surprised if the compiler does a better job. > >> > >>Also, the portability issue is relevant now that cygwin is starting the > >>move toward 64-bit support. > > > > Yes, that's exactly why Kai is proposing this. > > > > I haven't looked at the code but I almost always have one response to > > a "I want to rewrite a standard function" patches: > > > > Have you looked at other implementations? The current one was based > > on a linux implementation. A C version of these functions has likely > > been written before, possibly even in newlib. Were those considered? > > > > cgf > > Sure, I have looked up standard-implementation of > stricmp/strnicmp/strchr as code-base. We could of course simply use > C-runtime-funktions here, but well, those wouldn't be inlined. The > latter seems to me the only cause why string.h implements them at all. > They are defined there as 'static inline', which makes them pure > inlines.
Right, that's what I forgot entirely in my reply. From my POV they are good to go. Chris? Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat