24531904_j

24531904_j 24531904_j

16.02.2013 Aufrufe

fprcpa ─ 浮動小数点並列逆数近似 (Floating-point Parallel Reciprocal Approximation) fprcpa 書式 : (qp) fprcpa.sf f 1 ,p 2 = f 2 , f 3 F6 説明 : PR qp が 0 の場合、 RP p2 がク リアされる。 FR f1 はそのま ま変わらない。 PR qp が 1 の場合、 以下が行われる。 • FR f1 の仮数の上下各半分が、 FR f3 の対応する半分の逆数の近似値 ( 相対誤差

fprcpa } else if (fp_is_zero(num) && fp_is_finite(den)) { tmp_res = FP_ZERO; tmp_res.sign = num.sign ^ den.sign; tmp_pred_hi = 0; } else { tmp_res = fp_ieee_recip(den); if (limits_check.hi_fr2_or_quot) tmp_pred_hi = 0; else tmp_pred_hi = 1; } tmp_res_hi = fp_single(tmp_res); } if (fp_is_nan_or_inf(tmp_default_result_pair.lo) || limits_check.lo_fr3) { tmp_res_lo = fp_single(tmp_default_result_pair.lo); tmp_pred_lo = 0; } else { num = fp_normalize(fp_reg_read_lo(f2 )); den = fp_normalize(fp_reg_read_lo(f3 )); if (fp_is_inf(num) && fp_is_finite(den)) { tmp_res = FP_INFINITY; tmp_res.sign = num.sign ^ den.sign; tmp_pred_lo = 0; } else if (fp_is_finite(num) && fp_is_inf(den)) { tmp_res = FP_ZERO; tmp_res.sign = num.sign ^ den.sign; tmp_pred_lo = 0; } else if (fp_is_zero(num) && fp_is_finite(den)) { tmp_res = FP_ZERO; tmp_res.sign = num.sign ^ den.sign; tmp_pred_lo = 0; } else { tmp_res = fp_ieee_recip(den); if (limits_check.lo_fr2_or_quot) tmp_pred_lo = 0; else tmp_pred_lo = 1; } tmp_res_lo = fp_single(tmp_res); } FR[f 1].significand = fp_concatenate(tmp_res_hi, tmp_res_lo); FR[f 1 ].exponent = FP_INTEGER_EXP; FR[f 1 ].sign = FP_SIGN_POSITIVE; PR[p 2] = tmp_pred_hi && tmp_pred_lo; fp_update_fpsr(sf, tmp_fp_env); } fp_update_psr(f1 ); } else { PR[p2] = 0; } FP 例外 : 無効操作 (Invalid Operation: V) ゼロ除算 (Zero Divide: Z) デノーマル/ アンノ ーマル ・ オペラン ド (Denormal/Unnormal Operand: D) ソフ ト ウェア・アシスト (Software Assist: SWA) フォルト 割り込み : 無効操作フ ォ ル ト 浮動小数点例外フ ォ ル ト 浮動小数点レ ジ ス タ無効フ ォ ル ト 第 3 巻 : 命令リファレンス 3:111

fprcpa ─ 浮動小数点並列逆数近似<br />

(Floating-point Parallel Reciprocal Approximation)<br />

fprcpa<br />

書式 : (qp) fprcpa.sf f 1 ,p 2 = f 2 , f 3 F6<br />

説明 : PR qp が 0 の場合、 RP p2 がク リアされる。 FR f1 はそのま ま変わらない。<br />

PR qp が 1 の場合、 以下が行われる。<br />

• FR f1 の仮数の上下各半分が、 FR f3 の対応する半分の逆数の近似値 ( 相対誤差<br />

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!