I have done some more testing using gcc-3.4, guided by this
text in he gcc manual:
           -Os disables the following optimization flags: -falign-functions
           -falign-jumps  -falign-loops -falign-labels  -freorder-blocks
           -fprefetch-loop-arrays

After much testing I can only conclude that these options do not affect
this problem (:
Here's the short version of my test cases:

TestNr  Boots   Options
---------------------------------------------------------
0       No      -Os
1       Yes     -O2
14      No      -Os -falign-functions -falign-jumps -falign-loops 
-falign-labels -freorder-blocks -fprefetch-loop-arrays
18      Yes     -O2 -fno-reorder-blocks
19      Yes     -O2 -fno-align-functions -fno-align-jumps -fno-align-loops 
-fno-align-labels -fno-reorder-blocks

The assembler code produced for TestNr 18 and 19 are the same.
I have put the vsprintf.s assembler code for TestNr 14 and 18
on http://www.mph.eclipse.co.uk/pub/linux/
together with assembler code generated from:
$ objdump -d vsprintf.o14 | cut -f3 > vsprintf.asm14
$ objdump -d vsprintf.o18 | cut -f3 > vsprintf.asm18
But the difference between these is still quite large.

Hopefully this is of some use. I'm out of ideas what to try next.
Let me know if there is anything else I can try, or if you need more
information.

Best regards,
-- 
Martin

Reply via email to