https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51840
--- Comment #11 from Adam Warner <adam at consulting dot net.nz> --- Thank you for the fixed example! Just for the record only toy VM examples can be implemented using this technique. GCC documentation used to say that that the extended asm 30 operand limit might be lifted in a future version of GCC. This sentence seems to have been deleted. The full statement now reads: "The total number of input + output + goto operands has a limit of 30." The Java Virtual Machine, for example, contains almost 200 bytecode instructions. To use this technique to jump to each instruction the list of asm goto labels would number around 200. But the GCC limit is less than 30 (since one must also subtract input operands from the limit). It's a blemish on GCC's compiler architecture and a gross violation of the zero-one-infinity rule. BTW if the example is modified by adding 25+ additional dummy goto labels there is an Internal Compiler Error in extract_insn, at recog.c:2175 [gcc (Debian 4.9.0-7) 4.9.0]