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.

famax<br />

famax ─ 浮動小数点絶対最大値 (Floating-point Absolute Maximum)<br />

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

説明 : 絶対値が大き い方のオペラ ン ド が FR f1 に格納される。 FR f2 の絶対値が FR f3 の絶対値 と<br />

等しい場合は、 FR f1 には FR f3 の値が格納される。<br />

FR f2 か FR f3 が NaN である場合は、 FR f1 には FR f3 の値が格納される。<br />

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

こ の操作は、 他の浮動小数点算術演算命令 と は異な り 、 NaN を伝播させない。 fcmp.lt<br />

操作 と 同じ方法で無効操作 (Invalid Operation) が通知される。<br />

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

}<br />

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

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

} else {<br />

fminmax_exception_fault_check(f 2 , f 3 , sf, &tmp_fp_env);<br />

if (fp_raise_fault(tmp_fp_env))<br />

fp_exception_fault(fp_decode_fault(tmp_fp_env));<br />

}<br />

tmp_right = fp_reg_read(FR[f 2 ]);<br />

tmp_left = fp_reg_read(FR[f 3 ]);<br />

tmp_right.sign = FP_SIGN_POSITIVE;<br />

tmp_left.sign = FP_SIGN_POSITIVE;<br />

tmp_bool_res = fp_less_than(tmp_left, tmp_right);<br />

FR[f 1 ] = tmp_bool_res ? FR[f 2 ] : FR[f 3 ];<br />

fp_update_fpsr(sf, tmp_fp_env);<br />

fp_update_psr(f 1 );<br />

FP 例外 : 無効操作 (Invalid Operation: V)<br />

デノーマル/ アンノ ーマル ・ オペラン ド (Denormal/Unnormal Operand: D)<br />

ソフ ト ウェア・アシスト (Software Assist: SWA) フォルト<br />

割り込み : 無効操作フ ォ ル ト 浮動小数点例外フ ォ ル ト<br />

浮動小数点レ ジ ス タ無効フ ォ ル ト<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!