Below little test case demonstrates a gas bug that results in swapping of the two branch instructions and use of bogus destination addresses for the first of the two branches. [ralf@lappi tmp]$ cat s.s 1: beqzl $2, 1b beq $4, $5, 1b [ralf@lappi tmp]$ mips-linux-as -mips2 -o s.o s.s [ralf@lappi tmp]$ mips-linux-objdump -d s.o s.o: file format elf32-tradbigmips Disassembly of section .text: 00000000 <.text>: 0: 1085ffff beq a0,a1,0x0 4: 00000000 nop 8: 50400000 beqzl v0,0xc c: 00000000 nop Have a nice day ;-) Ralf