fpms
fpms — Floating-point Parallel Multiply Subtract
(
) fpms.
Format:
qp
sf f
The pair of products of the pairs of single precision values in the significand fields of FR
Description:
and FR
f
f
3
values in the significand field of FR
precision. The resulting values are then rounded to single precision using the rounding
mode specified by FPSR.sf.rc. The pair of rounded results are stored in the significand
field of FR
(0x1003E) and the sign field of FR
Note: If any of FR
computed results.
If
is f0 in the fpms instruction, just the IEEE multiply operation is performed.
Mapping:
f
2
The mnemonic values for sf are given in
The encodings and interpretation for the status field's rc are given in
page
1:90.
Operation:
if (PR[qp]) {
fp_check_target_register(f
if (tmp_isrcode = fp_reg_disabled(f
disabled_fp_register_fault(tmp_isrcode, 0);
if (fp_is_natval(FR[f
fp_is_natval(FR[f
FR[f
fp_update_psr(f
} else {
tmp_default_result_pair = fpms_fpnma_exception_fault_check(f
if (fp_raise_fault(tmp_fp_env))
if (fp_is_nan_or_inf(tmp_default_result_pair.hi)) {
} else {
}
if (fp_is_nan_or_inf(tmp_default_result_pair.lo)) {
} else {
3:116
=
,
,
f
f
f
1
3
4
2
are computed to infinite precision and then the pair of single precision
4
. The exponent field of FR
f
1
, FR
, or FR
f
f
3
4
]) || fp_is_natval(FR[f
2
])) {
4
] = NATVAL;
1
);
1
fp_exception_fault(fp_decode_fault(tmp_fp_env));
tmp_res_hi = fp_single(tmp_default_result_pair.hi);
tmp_res = fp_mul(fp_reg_read_hi(f
if (f
!= 0) {
2
tmp_sub = fp_reg_read_hi(f
tmp_sub.sign = !tmp_sub.sign;
tmp_res = fp_add(tmp_res, tmp_sub, tmp_fp_env);
}
tmp_res_hi = fp_ieee_round_sp(tmp_res, HIGH, &tmp_fp_env);
tmp_res_lo = fp_single(tmp_default_result_pair.lo);
tmp_res = fp_mul(fp_reg_read_lo(f
if (f
!= 0) {
2
tmp_sub = fp_reg_read_lo(f
tmp_sub.sign = !tmp_sub.sign;
tmp_res = fp_add(tmp_res, tmp_sub, tmp_fp_env);
}
is subtracted from these products, again in infinite
f
2
is set to the biased exponent for 2.0
f
1
is set to positive (0).
f
1
is a NaTVal, FR
is set to NaTVal instead of the
f
f
2
1
Table 2-23 on page
);
1
, f
, f
, f
1
2
3
4
]) ||
3
), fp_reg_read_hi(f
3
);
2
), fp_reg_read_lo(f
3
);
2
63
3:56.
Table 5-6 on
))
, f
2
3
f
, sf, &tmp_fp_env);
4
));
4
));
4
Volume 3: Instruction Reference
F1
,