Gcc generates "ds ; " and "cs ; " as branch hints. But gas doesn't handle them right: [hjl@gnu bh]$ for f in 1 2 3 4 > do > cat $f.s > gcc -c $f.s > objdump -dr $f.o > done ds ; je .+2 1.o: file format elf32-i386 Disassembly of section .text: 00000000 <.text>: 0: 3e 74 00 je,pt 0x3 ds/je .+2 2.o: file format elf32-i386 Disassembly of section .text: 00000000 <.text>: 0: 3e 74 ff je,pt 0x2 ds /je .+2 3.o: file format elf32-i386 Disassembly of section .text: 00000000 <.text>: 0: 3e 74 ff je,pt 0x2 ds / je .+2 4.s: Assembler messages: 4.s:1: Error: expecting mnemonic; got nothing objdump: '4.o': No such file
It looks like a gcc bug. Assembler has a way to define prefixes for an instruction. Unfortunately, gcc uses something else: http://sources.redhat.com/ml/binutils/2004-07/msg00350.html Close it. If necessary, gcc should be fixed.