[...@gnu-34 gcc]$ cat /tmp/x.c
void bar1() 
{
  char foo;
  asm volatile ("mov%z0 %1, %0": "+m" (foo): "ir" (23));
}

void bar2() 
{
  short foo;
  asm volatile ("mov%z0 %1, %0": "+m" (foo): "ir" (23));
}

void bar3() 
{
  int foo;
  asm volatile ("mov%z0 %1, %0": "+m" (foo): "ir" (23));
}

void bar4() 
{
  long long foo;
  asm volatile ("mov%z0 %1, %0": "+m" (foo): "ir" (23));
}
[...@gnu-34 gcc]$ ./xgcc -B./ -c /tmp/x.c 
/tmp/x.c: Assembler messages:
/tmp/x.c:10: Error: no instruction mnemonic suffix given and no register
operands; can't size instruction
[...@gnu-34 gcc]$


-- 
           Summary: The 'z' suffix doesn't work with 16bit integer insn
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hjl dot tools at gmail dot com
GCC target triplet: x86


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39911

Reply via email to