[...@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