On Thu, Jul 05, 2001 at 01:35:11PM +0200, Maciej W. Rozycki wrote:
> > > (why is noreorder used here?).
> > Without the .set noreorder the assembler would be free to do arbitrary
> > reordering of the object code generated. Gas doesn't do that but there
> > are other assemblers that do flow analysis and may generate object code
> > that doesn't look very much like the source they were fed with.
> Hmm, I would consider that a bug in such an assembler. The mtc0 and
> possibly the mfc0 opcode should be treated as reordering barriers as they
> may involve side effects an assembler might not be aware of.
Assembler is the art of using sideeffects so things are fairly explicit.
Optimizations are controlled using
.set noreorder / reorder
.set volatile / novolatile
.set nomove / nomove
.set nobopt / bopt