> > I'd say that the performance difference between the ELF and a.out versions
> > warrants an investigation of some sort. Comparing the "gcc -S" would be
> > a good start I guess...
> The a.out assembly uses smaller alignments (2 vs. 4 for variables, 4 vs.
> 16 for code); it uses leading underscores where the elf assembly does
> not. I would've put copies of the .s files on the web, but there's
> that pesky ITAR thing. Still, given the 386 was hardest hit, I expect
> that the smaller alignment padding wasn't the problem, and the underscore
> convention is purely a cosmetic naming thing. My bet is still on cache
> conflict misses. Anyone tried this on an MMX Pentium (bigger cache)?
Hmm, The L1 caches on 486's are really very small, in another program
I've had the extra alignment padding cause a (I think) a cache overflow
as the working set exceeded the cache size, have you tried compiling
with the options: -malign-loops=2 -malign-jumps=4
Or even: -malign-loops=2 -malign-jumps=2
-- Rob. (Robert de Bath <firstname.lastname@example.org>)