SSE2 intrinsics'i ve inline assembler'ı gcc'de karıştırmaya çalıştım. Ama bir değişken xmm0/register olarak girdiysem bazı durumlarında bir derleyici hatası alıyorum. Örnek:Hem SSE2 intrinsics'i hem de gcc inline assembler'ı kullanın.
#include <emmintrin.h>
int main() {
__m128i test = _mm_setzero_si128();
asm ("pxor %%xmm0, %%xmm0" : : "xmm0" (test) :);
}
gcc sürümü 4.6.1 ile derlenmiş zaman olsun:
>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
garip şey diğer giriş değişkenleri sahip aynı vakalarda/kayıtları sonra aniden xmm0 olarak çalışmasıdır giriş ama değil xmm1, vb. Ve başka bir durumda xmm0-xmm4 belirtmek mümkün ama yukarıda değil. Bu konuda sinirli/Biraz karıştı:
Teşekkür :)
Sen bir yıldızsın! Teşekkürler :) –