Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: completion on brace + 4 characters doesn't work
On 2011-04-29 10:44:44 +0200, Vincent Lefevre wrote:
> On 2011-04-28 20:56:57 -0700, Bart Schaefer wrote:
> > Out of curiosity, does the behavior change if you crank down the
> > degree of optimization (or up the of debugging) in the compiler flags
> > when building?
>
> For the test with valgrind, zsh was compiled with no optimizations,
> because I configured it with the option --enable-zsh-debug.
>
> Now, the optimization level doesn't affect the use of GCC builtins
> (there's one for strcpy).
In fact, the behavior comes from glibc on x86_64. It can be
reproduced with:
#include <stdio.h>
#include <string.h>
int main (void)
{
static char s[] = "{abcd";
volatile int len = 1;
printf ("s = %s\n", s);
strcpy (s, s + len);
printf ("s = %s\n", s);
return 0;
}
and gcc -fno-builtin (the strcpy builtin was not used anyway).
According to gdb, the source in eglibc-2.11.2 is
sysdeps/x86_64/multiarch/strcpy.S (strcpy with SSSE3). It can load
16 bytes at a time, and it uses special code on these 16 bytes (I'm
not sure, but it seems to have code for each length).
--
Vincent Lefèvre <vincent@xxxxxxxxxx> - Web: <http://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / Arénaire project (LIP, ENS-Lyon)
Messages sorted by:
Reverse Date,
Date,
Thread,
Author