https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80569
Bug ID: 80569 Summary: i686: "shrx" instruction generated in 16-bit mode Product: gcc Version: 6.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: davmac at davmac dot org Target Milestone: --- The following code, compiled with -m16 -O2 -c, fails at assembly: --- begin --- void load_kernel(void *setup_addr) { unsigned int seg = (unsigned int)setup_addr >> 4; asm("movl %0, %%es" : : "r"(seg)); } --- end --- $ gcc -m16 -O2 -c shrxdtestcase.i /tmp/ccGS34WK.s: Assembler messages: /tmp/ccGS34WK.s:11: Error: instruction `shrx' isn't supported in 16-bit mode.