While compiling http://www.libsdl.org/release/SDL-1.2.14.tar.gz with CFLAGS="-g -O0" appears: ./src/video/SDL_RLEaccel.c: Assembler messages: ./src/video/SDL_RLEaccel.c:831: Error: unsupported for `movq' ./src/video/SDL_RLEaccel.c:831: Error: unsupported for `movq' ./src/video/SDL_RLEaccel.c:831: Error: unsupported for `movq' ./src/video/SDL_RLEaccel.c:831: Error: unsupported for `movq' ./src/video/SDL_RLEaccel.c:930: Error: unsupported for `movq' ./src/video/SDL_RLEaccel.c:930: Error: unsupported for `movq' ./src/video/SDL_RLEaccel.c:930: Error: unsupported for `movq' ./src/video/SDL_RLEaccel.c:930: Error: unsupported for `movq' Any other -OX flag gives no errors. No flag gives error. On 4.4.X and on 4.5.X versions -O0 gives no errors while compilation. (Tested on i386 arch).
I really doubt this is a bug in GCC but rather SDL's inline-asm.
"=X" (mmx_trace) `X' Any operand whatsoever is allowed. They most likely want: y Any MMX register.