Intel ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3 Manual page 1015

Hide thumbs Also See for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3:
Table of Contents

Advertisement

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
,

Advertisement

Table of Contents
loading

This manual is also suitable for:

Itanium architecture 2.3

Table of Contents