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.

Reply via email to