16.02.2013 Aufrufe

24531904_j

24531904_j

24531904_j

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

ある ( 小数部分のすべてのビ ッ ト が 0 にセッ ト されている場合は、 その値は ∞ になる )。<br />

QNaN と は、 小数部分の最上位ビ ッ ト が 1 にセッ ト されている任意の NaN 値である。 NaN<br />

の符号ビ ッ ト は無視される。<br />

一般的に、 1 つ以上の浮動小数点算術演算命令に QNaN が使用された場合は、 QNaN は計<br />

算に よ って伝搬される。 一方、 SNaN が浮動小数点算術演算に使用 された場合は、 浮動小<br />

数点無効操作例外が通知 さ れる。 SNaN は、 通常は、 ト ラ ッ プを生成したり、 例外ハン ド<br />

ラを起動するために使用される。<br />

無効操作例外に対応す る フ ラ グ ・ ビ ッ ト と マス ク ・ ビ ッ ト は、 MXCSR 内にある。 マス<br />

ク・ビットは、SNaN 値の処理方法を指定す る。 無効操作マス ク ・ ビ ッ ト がセ ッ ト さ れて<br />

いる場合は、 SNaN は、 小数部分の最上位ビ ッ ト を 1 にセッ ト すれば、 QNaN に変換され<br />

る。 計算結果はデス テ ィ ネ ー シ ョ ン ・ オペラ ン ド に格納され、 無効操作フ ラ グがセ ッ ト さ<br />

れる。 無効操作マス ク が ク リ ア さ れてい る場合は、 無効操作フ ォ ル ト が通知され、 計算結<br />

果はデス テ ィ ネ ー シ ョ ン ・ オペラ ン ド に格納 さ れない。<br />

実際の演算や例外に よ っ て QNaN の結果が得 ら れた場合、 表 3-3 に示すよ う に、 結果の値<br />

はソース・オペランドによって決まる。 ただし、 MINPS 命令 と MAXPS 命令の処理は、 表<br />

3-3 の説明 と は異なる。 これらの命令では、 ソ ース ・ オペラン ド の う ち 1 つだけが NaN で<br />

ある場合、 Src2 オペラン ド (NaN または実数値) が結果に書き込まれる。 こ の動作は、 表<br />

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

ランドが NaN であるかに関係な く 、常にその NaN が結果に書き込まれる。MINPS/MAXPS<br />

命令では、 こ の方法に よ っ て、 アルゴ リ ズムの範囲チ ェ ッ ク の部分か ら NaN データが取<br />

り除かれる。 この動作の代わりに、 NaN ソース・オペランドを返す必要がある場合は、 一<br />

連の命令 ( 比較に続いて、 AND、 ANDN、 OR) を使用して、 min/max 機能をエ ミ ュ レ ー ト<br />

できる。<br />

一般的に、 ス ト リ ー ミ ン グ SIMD 拡張命令では、 Src1 と Src2 は次のよ う に使用される。<br />

ADDPS Srcl,Src2/m128<br />

ソフ ト ウェアは、 本項の始めに示した SNaN と QNaN のコード化に関する規則以外は、<br />

NaN の仮数部の ビ ッ ト を ど の よ う な目的に も 自由に使用で き る。 SNaN と QNaN をコード<br />

化すれば、 診断情報な ど のデー タ を伝達した り 格納した り で き る。<br />

表 3-3. NaN オペランドの演算の結果<br />

ソース・オペランド<br />

NaN の結果<br />

( 無効操作例外がマスクされている場合 )<br />

SNaN と QNaN Src1 の NaN (Src1 が SNaN の場合は QNaN に変<br />

換される )<br />

2 つの SNaN Src1 の NaN (QNaN に変換される )<br />

2 つの QNaN Src1 の QNaN<br />

SNaN と実数値 QNaN に変換された SNaN<br />

QNaN と実数値 QNaN ソース・オペランド<br />

SNaN/QNaN 値 ( オペランドを 1 つだけ使用する命令の<br />

場合。すなわち、RCPPS、RCPSS、RSQRTPS、<br />

RSQRTSS)<br />

QNaN に変換された SNaN/ ソースの QNaN<br />

ソース・オペランドがいずれも NaN ではなく、浮動小<br />

数点無効操作例外が通知された。<br />

デフォルトの QNaN 実数不定値<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!