7
我試圖混合使用gcc中的SSE2內聯函數和內聯彙編器。但是,如果我指定一個變量爲xmm0 /寄存器作爲輸入,然後在一些的情況下,我得到一個編譯器錯誤。例如:使用SSE2內在函數和gcc內聯彙編器
#include <emmintrin.h>
int main() {
__m128i test = _mm_setzero_si128();
asm ("pxor %%xmm0, %%xmm0" : : "xmm0" (test) :);
}
當與GCC 4.6.1編譯我得到:
>gcc asm_xmm.c
asm_xmm.c: In function ‘main’:
asm_xmm.c:10:3: error: matching constraint references invalid operand number
asm_xmm.c:7:5: error: matching constraint references invalid operand number
奇怪的是,在那裏我有其他的輸入變量相同的情況下/寄存器,然後它突然XMM0作爲工作輸入但不是xmm1等。而在另一種情況下,我可以指定xmm0-xmm4,但不能在上面。有點困惑/沮喪此:S
謝謝:)
你是明星!謝謝 :) – 2012-01-27 21:54:25