【发布时间】:2015-03-29 18:36:09
【问题描述】:
我正在尝试为 ubuntu 14.04 X86 构建一个项目,但出现以下错误:
error: unknown register name ‘%xmm1’ in ‘asm’
asm volatile (
^
error: unknown register name ‘%xmm0’ in ‘asm’
error: unknown register name ‘%mm1’ in ‘asm’
error: unknown register name ‘%mm0’ in ‘asm’
error: unknown register name ‘%xmm0’ in ‘asm’
asm volatile (
^
error: unknown register name ‘%mm0’ in ‘asm’
asm volatile (
在功能中:
static inline void
hev_bytes_xor_sse (guint8 *data, gsize size, guint8 byte)
{
gsize i = 0, c = 0, p128 = 0, p64 = 0;
guint64 w = (byte << 8) | byte;
asm volatile (
"movq %0, %%mm0\t\n"
"pshufw $0x00, %%mm0, %%mm1\t\n"
"movq2dq %%mm1, %%xmm0\t\n"
"pshufd $0x00, %%xmm0, %%xmm1\t\n"
::"m"(w)
:"%mm0", "%mm1", "%xmm0", "%xmm1"
);
gcc 版本 4.8.2
【问题讨论】:
-
它在 Fedora 17(是的,我应该升级)、gcc 版本 4.7.2 下对我来说编译得很好。我没有设置任何特殊的编译标志。你的编译命令行到底是什么?
-
试过用
-mmmx -msse2编译? -
听起来你实际上并没有使用 i386 版本的 gcc。也许你的路径有问题? gcc -v 对目标显示什么?