我正在尝试为ubuntu14.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版
发布于 2015-03-30 17:45:02
您可以使用:gcc -Q --help=target
检查gcc
使用的特定于目标的选项。除了对-O3
,gcc -O3 -Q --help=target
做了同样的事情。
为了编译这段代码,您需要启用-mmmx
和-msse2
。如果不是这样,您可以通过命令行传递它们:gcc -mmmx -msse2 ...
。
https://stackoverflow.com/questions/29333185
复制相似问题