http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59672 --- Comment #5 from David Woodhouse <dwmw2 at infradead dot org> --- Note that LLVM/clang has a -m16 option now which does the same thing. Again, not needing dirty hacks to ensure that asm(".code16gcc") really *is* the first thing the assembler sees.