This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] i386: Fix GCC running out of registers for bits/string.h


On Fri, 10 Jun 2005, Denis Vlasenko wrote:

> Hmm. I tried already, works for me.
> 
> //gcc4 compiles this just fine with:
> //gcc -O2 -fomit-frame-pointer

 I'm not sure why you chose the non-PIC variation, which works for me as 
is...  Anyway, if I substitute your code with the PIC variant, it still 
works -- probably the code involved is too trivial.  This must be a corner 
case in GCC which is not a surprise for me at all; note my changes have 
already fixed the original failure!

 There have been two similar bugs filed against GCC already (#15482 and 
#21291), but I've decided it's different enough to file it separately -- 
this is now bug #22045.

> BTW, can I beg for writing asm() statements so that they do not
> look like Obfuscated C Contest? Why this:
> 
>  ? ? ?"1:\n\t"
>  ? ? ?"lodsb\n\t"
>  ? ? ?"testb ? ? %%al,%%al\n\t" 
> 
> instead of this:
> 
> 	"1:\n"
>  ? ? ?	"	lodsb\n"
> 	"	testb	%%al,%%al\n"

 Well, I don't think we have rules written somewhere and lacking that I 
actually prefer the former, as well readable and fitting the output 
appropriately, i.e. no leading tab on the first line and no trailing 
newline on the last; depending on how often you want to read the generated 
assembly it may actually matter for you or not (gas doesn't care).  Then 
some people prefer something like:

	"1:\n\t"
	"lodsb\n\t"
	"testb\t%%al,%%al\n\t"

and that I agree starts being unreadable.

  Maciej

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]