gcc version 2.96 20000731 (Red Hat Linux 7.0) g++ -c -o out/LINUX/INTEL/optimize/scan16.o plugins/video/renderer/software/scan16.cpp -Wall -Wunused -W -mpentium -march=i586 -fno-exceptions -fno-rtti -O6 -fomit-frame-pointer -ffast-math -I. -I./apps -I./include -I./libs -I./plugins -I./support /tmp/ccAGBrAJ.s: Assembler messages: /tmp/ccAGBrAJ.s:17617: Error: local label "6" (instance number 1 of a fb label) is not defined Don't know if this is just a change in GCC producing a bug in existing code, or if some existing code triggered a bug in GCC. Above URL maps to the sourceforge respository that contains the version of the file I used.
That's a bug in the plugin, particularly in plugins/video/renderer/software/scanln.inc I think. Since gcc supports multiple assembly dialects on ia32 (AT&T and Intel syntax), | is a special character in asm patterns which separates the dialects. Just remove | from comments in inline mmx assembly and things will compile just fine.