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.

fpcvt.fx ─ 並列浮動小数点から整数への変換<br />

(Convert Parallel Floating-point to Integer)<br />

fpcvt.fx<br />

書式 : (qp) fpcvt.fx.sf f 1 = f 2 signed_form F10<br />

(qp) fpcvt.fx.trunc.sf f 1 = f 2 signed_form, trunc_form F10<br />

(qp) fpcvt.fxu.sf f 1 = f 2 unsigned_form F10<br />

(qp) fpcvt.fxu.trunc.sf f 1 = f 2 unsigned_form, trunc_form F10<br />

説明 : FR f2 の仮数フ ィ ー ル ド 内の単精度値のペアが、 FPSR.sf.rc で指定される丸めモー ド を使<br />

用して、 あるいは こ の命令の trunc_form が使用された場合はゼロ側への丸めモー ド を使<br />

用し、 符号付き (signed_form の場合 ) または符号なし (unsigned_form の場合 ) の 32 ビッ<br />

ト整数のペアに変換される。 この結果が、 32 ビット整数のペアとしてFR f1 の仮数<br />

フィールドに書き込まれる。 FR f1 の指数フ ィ ール ド は 2.063 (0x1003E) のバイアス付き指<br />

数に設定され、 FR f1 の符号フ ィ ール ド は正に対応する 0 に設定される。 IEEE 無効操作<br />

浮動小数点例外 (Invalid Operation Floating-Point Exception) フォルトがディスエーブルにさ<br />

れて、 変換の結果が 32 ビ ッ ト 整数 と して表現で き なか っ た場合は、 結果 と して 32 ビッ<br />

ト の不定整数値 0x80000000 が使用される。<br />

FR f2 が NaTVal である場合は、 FR f1 は計算結果ではな く NaTVal に設定される。<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 , 0, 0))<br />

disabled_fp_register_fault(tmp_isrcode, 0);<br />

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

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

fp_update_psr(f 1 );<br />

} else {<br />

tmp_default_result_pair = fpcvt_exception_fault_check(f 2,<br />

signed_form, trunc_form, sf, &tmp_fp_env);<br />

if (fp_raise_fault(tmp_fp_env))<br />

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

if (fp_is_nan(tmp_default_result_pair.hi)) {<br />

tmp_res_hi = INTEGER_INDEFINITE_32_BIT;<br />

} else {<br />

tmp_res = fp_ieee_rnd_to_int_sp(fp_reg_read_hi(f 2 ), HIGH,<br />

&tmp_fp_env);<br />

if (tmp_res.exponent)<br />

tmp_res.significand = fp_U64_rsh(<br />

tmp_res.significand, (FP_INTEGER_EXP - tmp_res.exponent));<br />

if (signed_form && tmp_res.sign)<br />

tmp_res.significand = (~tmp_res.significand) + 1;<br />

}<br />

tmp_res_hi = tmp_res.significand{31:0};<br />

if (fp_is_nan(tmp_default_result_pair.lo)) {<br />

tmp_res_lo = INTEGER_INDEFINITE_32_BIT;<br />

} else {<br />

tmp_res = fp_ieee_rnd_to_int_sp(fp_reg_read_lo(f 2 ), LOW,<br />

&tmp_fp_env);<br />

if (tmp_res.exponent)<br />

tmp_res.significand = fp_U64_rsh(<br />

tmp_res.significand, (FP_INTEGER_EXP - tmp_res.exponent));<br />

if (signed_form && tmp_res.sign)<br />

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!