MMX(R) テクノロジー 組み込み関数の詳細

MMX(R) テクノロジー命令では、次の機能を使用します。

レジスター

インテル(R) プロセッサーは、特別なレジスターセットを用意しています。MMX(R) 命令は、8 個の 64 ビット・レジスター (mm0mm7) を使用します。これらのレジスターは、浮動小数点スタックレジスターに別名を付けて使用されます。

各レジスターは複数のデータ要素を保持できるため、プロセッサーは複数のデータ要素を同時に処理できます。このような処理方法は、SIMD (Single Instruction, Multiple Data) 処理と呼ばれます。

新しい拡張命令セットのそれぞれの計算命令とデータ操作命令について、その命令を直接に実行する C 組み込み関数を用意しています。これにより、プログラマーは、レジスターの管理とアセンブリー言語のプログラミングを行う必要がなくなります。また、コンパイラーは、命令のスケジューリングを最適化して、実行ファイルの処理速度を上げることができます。

Note icon

MM レジスターと XMM レジスターは、それぞれ MMX(R) テクノロジーの組み込み関数と SSE/SSE2 の組み込み関数を実行するために、IA-32 アーキテクチャー・ベースのプラットフォーム上で使用される SIMD レジスターです。IA-64 アーキテクチャーでは、MMX(R) テクノロジーの組み込み関数と SSE の組み込み関数は、64 ビット汎用レジスターと、80 ビット浮動小数点レジスターの 64 ビットの仮数部を使用します。

データ型

組み込み関数は、4 つの新しい C データ型をオペランドとして使用します。4 つのデータ型は、組み込み関数に対するオペランドとして使用される新しいレジスターを表しています。

__m64 データ型

__m64 データ型は、MMX(R) テクノロジーの組み込み関数に使用される MMX レジスターの内容を表します。__m64 データ型は、8 個の 8 ビット値、4 個の 16 ビット値、2 個の 32 ビット値、または 1 個の 64 ビット値を保持できます。

データ型を使用する際のガイドライン

これらの新しいデータ型は、基本的な ANSI C データ型ではありません。このため、次のような使用上の制限があります。