16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

CMPSS—Scalar Single-FP Compare<br />

オペコード 命令 説明<br />

F3,0F,C2,/r,ib CMPSS xmm1, xmm2/m32,<br />

imm8<br />

操作<br />

switch (imm8) {<br />

case eq: op = eq;<br />

case lt: op = lt;<br />

case le: op = le;<br />

case unord: op = unord;<br />

case neq: op = neq;<br />

case nlt: op = nlt;<br />

case nle: op = nle;<br />

case ord: op = ord;<br />

default: Reserved;<br />

}<br />

cmp0 = op(xmm1[31-0],xmm2/m32[31-0]);<br />

xmm1[31-0] = (cmp0) ? 0xffffffff : 0x00000000;<br />

xmm1[63-32] = xmm1[63-32];<br />

xmm1[95-64] = xmm1[95-64];<br />

xmm1[127-96] = xmm1[127-96];<br />

imm8 を述語として使用して、XMM2/Mem の最下位の単精<br />

度浮動小数点値と XMM1 の最下位の単精度浮動小数点値を<br />

比較し、結果を XMM1 レジスタにストアする。<br />

説明<br />

CMPSS 命令は、 imm8 に よ っ て指定 さ れる比較述語を使用して、 最下位の単精度浮動小<br />

数点値のペアを比較し、 すべて "1" の 32 ビッ ト ・マスクまたはすべて"0" の 32 ビッ ト ・<br />

マスクを返す。 上位 3 つの単精度浮動小数点値のペアの値は比較しない。 こ の命令の後<br />

に、 こ のマス ク を入力オペラ ン ド と して使用す る計算命令を実行して も 、 フ ォ ル ト は発<br />

生しない。 これは、 すべて "0" のマス クは +0.0 の浮動小数点値に対応し、 すべて "1" の<br />

マスクは -qNaN の浮動小数点値に対応す る ためであ る。 比較の中に は、 ソ フ ト ウ ェ ア ・<br />

エ ミ ュ レ ー シ ョ ン以外では実行で き ない も のがある。 これら の比較を行 う 際は、 プ ロ グ<br />

ラマが必要に応じてレジスタをコピーしてデスティネーション・オペランドになるデー<br />

タを保護し、 ソース・オペランドとデスティネーション・オペランドを入れ替えた後、<br />

異なる述語を使って比較を実行しなければならない。 これらのエ ミ ュ レーシ ョ ンに使用<br />

される述語は、 次の表の 「エ ミ ュ レーシ ョ ン」 の欄に記載されている。<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!