使い分けに関するガイドライン EMMS を使用できます。

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 Blank topics are included as placeholders.]

Microsoft 固有の仕様 →

次のガイドラインでは EMMS 命令を使用するかを調べます :

  • 次の手順で使用する浮動小数点命令**_mm_empty** を使用するとMMX 命令 (たとえばFloatDoublelong double 型の計算を行う前に)

  • 既に空の空けないようにします。 次の手順はMMX レジスタを使用する利点は**_mm_empty** せずに操作の影響を受けます (非操作)。

  • MMX 命令の使用手順と浮動小数点命令を使用できる領域には関数を使用します。 これは重要なループの本体に EMMS 命令が必要なことを削除します。

  • __m64FP のデータ型のランタイム初期化中に _mm_empty を使用します。 これはデータ型の遷移のレジスタのリセットを確認します。 次の例ではコーディングを参照してください。

初期化コードの正しい EMMS の使用

不適切な使用

正しい使用方法

__m64 x = _m_paddd(y, z);
float f = init();
__m64 x = _m_paddd(y, z);
float f = (_mm_empty(), init());

コードがMMX 命令を生成するときにまたすべての状況です :

  • MMX 組み込みを使用するとき。

  • ストリーミング SIMD 拡張子を使用した場合 (これらの組み込み MMX 使用するデータ)。

  • MMX 命令をインライン アセンブリを使用するとき。

  • __m64 のデータ型の変数を参照するとき。

EMMS のドキュメントではIntel のドキュメントを参照してください。

MMX 組み込みは x64 のプロセッサでサポートされていない __m64 のデータ型を使用します。

参照

Reference

MMX テクノロジ

MMX テクノロジの概要の組み込みのサポート