24531904_j
24531904_j 24531904_j
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
- Seite 886 und 887: ANDNPS—Bit-wise Logical And Not F
- Seite 888 und 889: ANDPS—Bit-wise Logical And for Si
- Seite 890 und 891: CMPPS—Packed Single-FP Compare (
- Seite 892 und 893: CMPPS—Packed Single-FP Compare (
- Seite 894 und 895: CMPSS—Scalar Single-FP Compare (
- Seite 896 und 897: CMPSS—Scalar Single-FP Compare (
- Seite 898 und 899: COMISS—Scalar Ordered Single-FP C
- Seite 900 und 901: CVTPI2PS—Packed Signed INT32 to P
- Seite 902 und 903: CVTPS2PI—Packed Single-FP to Pack
- Seite 904 und 905: CVTPS2PI—Packed Single-FP to Pack
- Seite 906 und 907: CVTSI2SS—Scalar Signed INT32 to S
- Seite 908 und 909: CVTSS2SI—Scalar Single-FP to Sign
- Seite 910 und 911: CVTTPS2PI—Packed Single-FP to Pac
- Seite 912 und 913: CVTTSS2SI—Scalar Single-FP to Sig
- Seite 914 und 915: DIVPS—Packed Single-FP Divide オ
- Seite 916 und 917: DIVSS—Scalar Single-FP Divide オ
- Seite 918 und 919: FXRSTOR—Restore FP and Intel ® M
- Seite 920 und 921: FXRSTOR—Restore FP And Intel ® M
- Seite 922 und 923: FXSAVE—Store FP and Intel ® MMX
- Seite 924 und 925: FXSAVE—Store FP and Intel ® MMX
- Seite 926 und 927: FXSAVE—Store FP and Intel ® MMX
- Seite 928 und 929: LDMXCSR—Load Streaming SIMD Exten
- Seite 930 und 931: MAXPS—Packed Single-FP Maximum
- Seite 932 und 933: MAXSS—Scalar Single-FP Maximum
- Seite 934 und 935: MINPS—Packed Single-FP Minimum
- Seite 938 und 939: MOVAPS—Move Aligned Four Packed S
- Seite 940 und 941: MOVHLPS—Move High to Low Packed S
- Seite 942 und 943: MOVHPS—Move High Packed Single-FP
- Seite 944 und 945: MOVLHPS—Move Low to High Packed S
- Seite 946 und 947: MOVLPS—Move Low Packed Single-FP
- Seite 948 und 949: MOVMSKPS—Move Mask To Integer オ
- Seite 950 und 951: MOVSS—Move Scalar Single-FP オ
- Seite 952 und 953: MOVUPS—Move Unaligned Four Packed
- Seite 954 und 955: MOVUPS—Move Unaligned Four Packed
- Seite 956 und 957: MULPS—Packed Single-FP Multiply (
- Seite 958 und 959: MULSS—Scalar Single-FP Multiply (
- Seite 960 und 961: ORPS—Bit-wise Logical OR for Sing
- Seite 962 und 963: RCPPS—Packed Single-FP Reciprocal
- Seite 964 und 965: RCPSS—Scalar Single-FP Reciprocal
- Seite 966 und 967: RSQRTPS—Packed Single-FP Square R
- Seite 968 und 969: RSQRTSS—Scalar Single-FP Square R
- Seite 970 und 971: SHUFPS—Shuffle Single-FP ( 続き
- Seite 972 und 973: SQRTPS—Packed Single-FP Square Ro
- Seite 974 und 975: SQRTSS—Scalar Single-FP Square Ro
- Seite 976 und 977: STMXCSR—Store Streaming SIMD Exte
- Seite 978 und 979: SUBPS—Packed Single-FP Subtract
- Seite 980 und 981: SUBSS—Scalar Single-FP Subtract
- Seite 982 und 983: UCOMISS—Unordered Scalar Single-F
- Seite 984 und 985: UNPCKHPS—Unpack High Packed Singl
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