24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

FP 例外 : 無効操作 (Invalid Operation: V) デノーマル/ アンノ ーマル ・ オペラン ド (Denormal/Unnormal Operand: D) ソフ ト ウェア・アシスト (Software Assist: SWA) フォルト 割り込み : 無効操作フ ォ ル ト 浮動小数点例外フ ォ ル ト 浮動小数点レ ジ ス タ無効フ ォ ル ト fpamin 3:90 第 3 巻 : 命令リファレンス

fpcmp fpcmp ─ 浮動小数点並列比較 (Floating-point Parallel Compare) 書式 : (qp) fpcmp.frel.sf f 1 = f 2 , f 3 F8 説明 : FR f 2 およびFR f 3 の両仮数フ ィ ー ル ド に格納 さ れてい る単精度ソ ー ス ・ オペラ ン ド の各 ペアが、 frel で指定される 12 種類の関係のいずれか 1 つについて比較される。 この操作 に よ り ブ ー ル結果が生成 さ れる。 結果は、 比較条件が真であ る場合は 32 個の "1" からな るマスクになり、 偽の場合は 32 個の "0" からなるマスクになる。 この結果は、 FR f 1 の 仮数フ ィ ー ル ド に 32 ビット整数のペアとして書き込まれる。 FR f 1 の指数フ ィ ール ド は 2.0 63 (0x1003E) のバイアス付き指数に設定 さ れ、 FR f 1 の符号フ ィ ール ド は正に対応する 0 に設定される。 表 2-29. 浮動小数点並列比較の結果 PR[qp]==0 結果 ==0、ソースに NaTVal なし PR[qp]==1 結果 ==1、ソースに NaTVal なし sf のニーモニ ッ ク値は 3:50 ページの表 2-23 に示している。 各比較タ イ プに対して定義されてい る比較関係の一覧を表 2-30 に示す。 12 種類の関係の すべてがハー ド ウ ェ アで直接サポ ー ト さ れてい る わけではない。 一部は実際に は擬似オ ペコー ドである。 それらの関係に対しては、 アセンブラは単にソース ・ オペランド指定 子やプレデ ィ ケ ー ト ・ タ イプ指定子を切り換えて、 サポ ー ト されている関係を利用する。 FR f2 か FR f3 が NaTVal である場合は、 FR f1 は計算結果ではな く NaTVal に設定される。 操作 : if (PR[qp]) { fp_check_target_register(f 1); if (tmp_isrcode = fp_reg_disabled(f 1 , f 2 , f 3 , 0)) disabled_fp_register_fault(tmp_isrcode, 0); if (fp_is_natval(FR[f 2 ]) || fp_is_natval(FR[f 3 ])) { FR[f 1 ] = NATVAL; ソースに NaTVal が 1 つ以上あり 無変更 0...0 1...1 NaTVal 表 2-30. 浮動小数点並列比較関係 frel frel コンプリータの意味 関係 擬似オペコード オペランドが クワイエット型 NaN の 場合の無効通知の有無 eq 等しい f2 == f3 なし lt より小 f2 < f3 あり le より小か等しい f2 f3 lt f2 ↔ f3 あり ge より大か等しい f2 >= f3 le f2 ↔ f3 あり unord 非順序化 ( アンオーダー ) f2 ? f3 なし neq 等しくない !(f2 == f3 ) なし nlt より小でない !(f2 < f3 ) あり nle より小でないか等しい !(f2 f3 ) nlt f2 ↔ f3 あり nge より大でないか等しい !(f2 >= f3 ) nle f2 ↔ f3 あり ord 順序化 ( オーダー ) !(f2 ? f3 ) なし 第 3 巻 : 命令リファレンス 3:91

fpcmp<br />

fpcmp ─ 浮動小数点並列比較 (Floating-point Parallel Compare)<br />

書式 : (qp) fpcmp.frel.sf f 1 = f 2 , f 3 F8<br />

説明 : FR f 2 およびFR f 3 の両仮数フ ィ ー ル ド に格納 さ れてい る単精度ソ ー ス ・ オペラ ン ド の各<br />

ペアが、 frel で指定される 12 種類の関係のいずれか 1 つについて比較される。 この操作<br />

に よ り ブ ー ル結果が生成 さ れる。 結果は、 比較条件が真であ る場合は 32 個の "1" からな<br />

るマスクになり、 偽の場合は 32 個の "0" からなるマスクになる。 この結果は、 FR f 1 の<br />

仮数フ ィ ー ル ド に 32 ビット整数のペアとして書き込まれる。 FR f 1 の指数フ ィ ール ド は<br />

2.0 63 (0x1003E) のバイアス付き指数に設定 さ れ、 FR f 1 の符号フ ィ ール ド は正に対応する<br />

0 に設定される。<br />

表 2-29. 浮動小数点並列比較の結果<br />

PR[qp]==0<br />

結果 ==0、ソースに<br />

NaTVal なし<br />

PR[qp]==1<br />

結果 ==1、ソースに<br />

NaTVal なし<br />

sf のニーモニ ッ ク値は 3:50 ページの表 2-23 に示している。<br />

各比較タ イ プに対して定義されてい る比較関係の一覧を表 2-30 に示す。 12 種類の関係の<br />

すべてがハー ド ウ ェ アで直接サポ ー ト さ れてい る わけではない。 一部は実際に は擬似オ<br />

ペコー ドである。 それらの関係に対しては、 アセンブラは単にソース ・ オペランド指定<br />

子やプレデ ィ ケ ー ト ・ タ イプ指定子を切り換えて、 サポ ー ト されている関係を利用する。<br />

FR f2 か FR f3 が NaTVal である場合は、 FR f1 は計算結果ではな く NaTVal に設定される。<br />

操作 : if (PR[qp]) {<br />

fp_check_target_register(f 1);<br />

if (tmp_isrcode = fp_reg_disabled(f 1 , f 2 , f 3 , 0))<br />

disabled_fp_register_fault(tmp_isrcode, 0);<br />

if (fp_is_natval(FR[f 2 ]) || fp_is_natval(FR[f 3 ])) {<br />

FR[f 1 ] = NATVAL;<br />

ソースに NaTVal が<br />

1 つ以上あり<br />

無変更 0...0 1...1 NaTVal<br />

表 2-30. 浮動小数点並列比較関係<br />

frel frel コンプリータの意味 関係 擬似オペコード<br />

オペランドが<br />

クワイエット型 NaN の<br />

場合の無効通知の有無<br />

eq 等しい f2 == f3 なし<br />

lt より小 f2 < f3 あり<br />

le より小か等しい f2 f3 lt f2 ↔ f3 あり<br />

ge より大か等しい f2 >= f3 le f2 ↔ f3 あり<br />

unord 非順序化 ( アンオーダー ) f2 ? f3 なし<br />

neq 等しくない !(f2 == f3 ) なし<br />

nlt より小でない !(f2 < f3 ) あり<br />

nle より小でないか等しい !(f2 f3 ) nlt f2 ↔ f3 あり<br />

nge より大でないか等しい !(f2 >= f3 ) nle f2 ↔ f3 あり<br />

ord 順序化 ( オーダー ) !(f2 ? f3 ) なし<br />

第 3 巻 : 命令リファレンス 3:91

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!