egcs-1.1.1 bootstrap-failure on i386-next-nextstep3
Jeffrey A Law
law@cygnus.com
Fri Dec 11 09:57:00 GMT 1998
In message < 199812111443.IAA15630@pollux.usask.ca >you write:
> Identification
> ==============
> Looking at the assembler code generated by the stage 1 compiler reveals:
> .stabd 68,0,53
> addl $4,%esp
> cmpl $0,_tree_codes
> je L95
> movl $_tree_codes,%ebx
> .align 2 <<<<<======= !!!!!!!!!!!
> L97:
> .stabd 68,0,55
> movl (%ebx),%eax
> pushl %eax
> pushl %eax
>
> What's an `align' doing in the middle of an instruction
> sequence??!!!
Aligning the start of the loop can improve performance of the loop. It's
very common.
> It's forcing an extra byte between the end of the
> `movl $_tree_codes,%ebx' instruction and the beginning of the `movl
> (%ebx),%eax' instruction. This, of course, completely messes up the
> instructions seen by the processor.
This sounds like an assembler buglet then :-) It's supposed to emit nops
when you issue an align in a code space.
What asembler are you using?
jeff
More information about the Gcc-bugs
mailing list