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