那位大侠能把下面这段GCC中的嵌入式汇编转成VC下的?
急用啊急用:(
或者提供相关的资料也行啊,比如那个movq 8(%0, %3)中的8是什么意思?括起来的又是什么东西啊 asm volatile(
"movd %1, %%mm6 \n\t" //qmul
"packssdw %%mm6, %%mm6 \n\t"
"packssdw %%mm6, %%mm6 \n\t"
"movd %2, %%mm5 \n\t" //qadd
"pxor %%mm7, %%mm7 \n\t"
"packssdw %%mm5, %%mm5 \n\t"
"packssdw %%mm5, %%mm5 \n\t"
"psubw %%mm5, %%mm7 \n\t"
"pxor %%mm4, %%mm4 \n\t"
".balign 16\n\t"
"1: \n\t"
"movq (%0, %3), %%mm0 \n\t"
"movq 8(%0, %3), %%mm1 \n\t" "pmullw %%mm6, %%mm0 \n\t"
"pmullw %%mm6, %%mm1 \n\t" "movq (%0, %3), %%mm2 \n\t"
"movq 8(%0, %3), %%mm3 \n\t" "pcmpgtw %%mm4, %%mm2 \n\t" // block[i] < 0 ? -1 : 0
"pcmpgtw %%mm4, %%mm3 \n\t" // block[i] < 0 ? -1 : 0 "pxor %%mm2, %%mm0 \n\t"
"pxor %%mm3, %%mm1 \n\t" "paddw %%mm7, %%mm0 \n\t"
"paddw %%mm7, %%mm1 \n\t" "pxor %%mm0, %%mm2 \n\t"
"pxor %%mm1, %%mm3 \n\t" "pcmpeqw %%mm7, %%mm0 \n\t" // block[i] == 0 ? -1 : 0
"pcmpeqw %%mm7, %%mm1 \n\t" // block[i] == 0 ? -1 : 0 "pandn %%mm2, %%mm0 \n\t"
"pandn %%mm3, %%mm1 \n\t" "movq %%mm0, (%0, %3) \n\t"
"movq %%mm1, 8(%0, %3) \n\t" "addl $16, %3 \n\t"
"jng 1b \n\t"
::"r" (block+nCoeffs), "g"(qmul), "g" (qadd), "r" (2*(-nCoeffs))
: "memory"
);