以下代码:
simd(n, is)
long *is;
{
long i;
asm("pxor %mm0,%mm0");
for (i = 0; i < n; i += W) {
asm("movq %0 %%mm1\n\t"
"paddq %%mm1 %%mm0"
:
:"m"(is[i]) );
}
return 0;
}
我无法理解为什么它无法编译并出现以下错误:
/tmp/ccrDnFTm.s: Assembler messages:
/tmp/ccrDnFTm.s:29: Error: suffix or operands invalid for `movq'
/tmp/ccrDnFTm.s:30: Error: junk `%mm0' after register
为什么吗
答案 0 :(得分:4)
操作数必须用逗号分隔:
movq %0, %%mm1