C言語なら俺に聞け(入門編)Part 69
■ このスレッドは過去ログ倉庫に格納されています
0473デフォルトの名無しさん
2010/09/22(水) 14:02:03asm_mmx_psubsw_test.c
*/
#include <stdio.h>
int main ()
{
short int a[4] = {1111,1112,1113,1114};
short int b[4] = {1111,2112,3113,4114};
short int c[4];
/*Word 4要素のベクトル同士の符号付き引き算 a - b*/
/*
入力値には配列 a,b のアドレス &a,&b を使い、そのアドレスにある
メモリ内容を movq で %mm0,%mm1に移動する。
引き算の結果は出力用の配列 c に割り当てたレジスタ %0 に movq で
移動する。
*/
asm volatile ("
movq (%1),%%mm0
movq (%2),%%mm1
psubsw %%mm1,%%mm0
movq %%mm0,%0
emms
" : "=g" (c) : "r" (&a), "r" (&b));
printf ("%d,%d,%d,%d\n", c[0], c[1], c[2], c[3]);
return 0;
}
インラインアセンブラでエラーが出ます。なぜ?
■ このスレッドは過去ログ倉庫に格納されています