https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119751
--- Comment #15 from Zbigniew <zbigniew2011 at gmail dot com> --- The second example, I mean the one from PDF book, spits out somewhat different errors. I mean the second one from the section 2.17: PROCEDURE Example (foo, bar: CARDINAL) : CARDINAL ; VAR myout: CARDINAL ; BEGIN ASM VOLATILE ( "movq %[left],%%rax; addq %[right],%%rax; movq %%rax,%[output]" : [output] "=rm" (myout) (* outputs *) : [left] "rm" (foo), [right] "rm" (bar) (* inputs *) : "rax") ; (* we trash *) RETURN( myout ) END Example ; gm2 -g -fiso coex2.mod -o coex2 In function 'Example': cc1gm2: error: undefined named operand 'left' cc1gm2: error: undefined named operand 'right' cc1gm2: error: undefined named operand 'output' Looks like these extension don't work somehow (or maybe I need to include some another parameter in the command line?).