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 Ralf