24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

MINSS—Scalar Single-FP Minimum オペコード 命令 説明 F3,0F,5D,/r MINSS xmm1, xmm2/m32 XMM2/Mem と xmm1 の最下位の単精度浮動小数点値を比 較して、最小値を返す。 操作 xmm1[31-0] =(xmm1[31-0] == NAN) ? xmm2[31-0] : (xmm2[31-0] == NAN) ? xmm2[31-0] : (xmm1[31-0] < xmm2/m32[31-0]) ? xmm1[31-0] : xmm2/m32[31-0]; xmm1[63-32] = xmm1[63-32]; xmm1[95-64] = xmm1[95-64]; xmm1[127-96] = xmm1[127-96]; 説明 MINSS 命令は、 XMM1 と XMM2/Mem の最下位の単精度浮動小数点値を比較して、 最小 値を返す。 上位の 3 つのフ ィ ール ド は、 xmm1 からそのま ま渡される。 比較される値が 両方 と も ゼ ロ の場合は、 source2 (xmm2/m128) が返される。 source2 (xmm2/m128) が sNaN の場合は、 その sNaN が変更されずにデスティネーションに転送される( つまり、 クワ イエッ ト sNaN は返さない )。 FP 例外 なし。 数値例外 無効 (qNaN ソース ・オペランドを含む)、 デノーマル。 保護モード例外 #GP(0) CS、 DS、 ES、 FS、 または GS セグメン ト 内のメモ リ ・ オ ペラン ドの実効アドレスが無効の場合。 #SS(0) SS セグメン ト 内のアド レスが無効の場合。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 #UD CR0.EM = 1 の場合。 #NM CR0 の TS ビ ッ ト がセ ッ ト さ れた場合。 #AC アライメントの合っていないメモリ参照を行った場合。 #AC 例外を イ ネ ー ブルにす る には、 3 つの条件に該当しな ければならない(CR0.AMがセ ッ ト されている、EFLAGS.AC がセ ッ ト さ れてい る、 現在の CPL が 3 である )。 #XM マスク されていないスト リ ー ミ ング SIMD 拡張命令数値例 外が発生した場合 (CR4.OSXMMEXCPT = 1)。 #UD マスク されていないスト リ ー ミ ング SIMD 拡張命令数値例 外が発生した場合 (CR4.OSXMMEXCPT = 0)。 #UD CRCR4.OSFXSR ( ビッ ト 9) = 0 の場合。 #UD CPUID.XMM (EDX ビッ ト 25) = 0 の場合。 3:924 第 3 巻 : IA-32 ストリーミング SIMD 拡張命令リファレンス

MINSS—Scalar Single-FP Minimum ( 続き ) 実アドレス・モード例外 割り込み 13 オペラン ド の一部が 0 ~ 0FFFFH の実効ア ド レス空間の範 囲外の場合。 #UD CR0.EM = 1 の場合。 #NM CR0 の TS ビ ッ ト がセ ッ ト さ れた場合。 #XM マスク されていないスト リ ー ミ ング SIMD 拡張命令数値例 外が発生した場合 (CR4.OSXMMEXCPT = 1)。 #UD マスク されていないスト リ ー ミ ング SIMD 拡張命令数値例 外が発生した場合 (CR4.OSXMMEXCPT = 0)。 #UD CRCR4.OSFXSR ( ビッ ト 9) = 0 の場合。 #UD CPUID.XMM (EDX ビッ ト 25) = 0 の場合。 仮想 8086 モード例外 実ア ド レ ス ・ モー ド と 同じ例外。 #PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。 #AC ア ラ イ メ ン ト の合 っ ていない メ モ リ 参照を行 っ た場合。 追加の Itanium ベース・システム環境例外 Itanium アーキテクチャ ・ レジスタ ・ フォルト Itanium アーキテクチャ ・ メモリ ・ フォル ト コメント 浮動小数点レ ジ ス タ無効フ ォ ル ト (PSR.dfl が 1 の場合 )、 NaT レ ジ ス タ参照フ ォ ル ト 。 VHPT データ ・ フォル ト、 データ TLB フォルト、 代替 データ TLB フォルト、 データ・ページ不在フォルト、 データ NaT ページ参照アボー ト、 データ ・ キー ・ ミ ス ・ フォルト、 データ・キー許可フォルト、 データ・アクセス 権フォルト、 データ・アクセス・ビット ・フォルト。 これらの命令では、 ソース ・ オペランドのう ち一方だけが NaN である場合、 常に Src2 オ ペラン ド (NaN または実数値) が結果に書き込まれる こ と に注意する。 この動作は、 表 3-3 に定義されている他の命令の動作と は異なる ( 他の命令では、 ど ち ら のソ ー ス ・ オペ ランドがNaN であるかを問わず、 常にその NaN が結果に書き込まれる )。 ただし、 他の すべてのスカ ラ演算と同様に、 MINSS 命令で も 、 上位の 3 つのオペラン ド は src1 オペラ ンドからそのまま渡される。 これによ り、 コンパイラは、 一般的な C の条件付き構造に MINSS 命令を使用で き る。 こ の動作を変更して NaN ソース ・ オペランドを返す必要があ る場合は、 一連の命令を使用して min/max 機能をエ ミ ュ レ ー ト で き る ( 比較の後、 AND、 ANDN、 OR)。 第 3 巻 : IA-32 ストリーミング SIMD 拡張命令リファレンス 3:925

MINSS—Scalar Single-FP Minimum ( 続き )<br />

実アドレス・モード例外<br />

割り込み 13 オペラン ド の一部が 0 ~ 0FFFFH の実効ア ド レス空間の範<br />

囲外の場合。<br />

#UD CR0.EM = 1 の場合。<br />

#NM CR0 の TS ビ ッ ト がセ ッ ト さ れた場合。<br />

#XM マスク されていないスト リ ー ミ ング SIMD 拡張命令数値例<br />

外が発生した場合 (CR4.OSXMMEXCPT = 1)。<br />

#UD マスク されていないスト リ ー ミ ング SIMD 拡張命令数値例<br />

外が発生した場合 (CR4.OSXMMEXCPT = 0)。<br />

#UD CRCR4.OSFXSR ( ビッ ト 9) = 0 の場合。<br />

#UD CPUID.XMM (EDX ビッ ト 25) = 0 の場合。<br />

仮想 8086 モード例外<br />

実ア ド レ ス ・ モー ド と 同じ例外。<br />

#PF ( フォルト ・コード ) ペー ジ ・ フ ォ ル ト が発生した場合。<br />

#AC ア ラ イ メ ン ト の合 っ ていない メ モ リ 参照を行 っ た場合。<br />

追加の Itanium ベース・システム環境例外<br />

Itanium アーキテクチャ ・<br />

レジスタ ・ フォルト<br />

Itanium アーキテクチャ ・<br />

メモリ ・ フォル ト<br />

コメント<br />

浮動小数点レ ジ ス タ無効フ ォ ル ト (PSR.dfl が 1 の場合 )、<br />

NaT レ ジ ス タ参照フ ォ ル ト 。<br />

VHPT データ ・ フォル ト、 データ TLB フォルト、 代替<br />

データ TLB フォルト、 データ・ページ不在フォルト、<br />

データ NaT ページ参照アボー ト、 データ ・ キー ・ ミ ス ・<br />

フォルト、 データ・キー許可フォルト、 データ・アクセス<br />

権フォルト、 データ・アクセス・ビット ・フォルト。<br />

これらの命令では、 ソース ・ オペランドのう ち一方だけが NaN である場合、 常に Src2 オ<br />

ペラン ド (NaN または実数値) が結果に書き込まれる こ と に注意する。 この動作は、 表<br />

3-3 に定義されている他の命令の動作と は異なる ( 他の命令では、 ど ち ら のソ ー ス ・ オペ<br />

ランドがNaN であるかを問わず、 常にその NaN が結果に書き込まれる )。 ただし、 他の<br />

すべてのスカ ラ演算と同様に、 MINSS 命令で も 、 上位の 3 つのオペラン ド は src1 オペラ<br />

ンドからそのまま渡される。 これによ り、 コンパイラは、 一般的な C の条件付き構造に<br />

MINSS 命令を使用で き る。 こ の動作を変更して NaN ソース ・ オペランドを返す必要があ<br />

る場合は、 一連の命令を使用して min/max 機能をエ ミ ュ レ ー ト で き る ( 比較の後、 AND、<br />

ANDN、 OR)。<br />

第 3 巻 : IA-32 ストリーミング SIMD 拡張命令リファレンス 3:925

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!