fma — Floating-point Multiply Add
(
) fma.
Format:
qp
pc
The product of FR
Description:
this product, again in infinite precision. The resulting value is then rounded to the
precision indicated by pc (and possibly FPSR.sf.pc and FPSR.sf.wre) using the rounding
mode specified by FPSR.sf.rc. The rounded result is placed in FR
If any of FR
result.
If
is f0, an IEEE multiply operation is performed instead of a multiply and add.
f
2
"fmpy — Floating-point Multiply" on page 3:85.
The mnemonic values for the opcode's pc are given in
mnemonic values for sf are given in
interpretation of the status field's pc, wre, and rc, refer to
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 = fma_exception_fault_check(f
if (fp_raise_fault(tmp_fp_env))
if (fp_is_nan_or_inf(tmp_default_result)) {
} else {
}
fp_update_fpsr(sf, tmp_fp_env);
fp_update_psr(f
if (fp_raise_traps(tmp_fp_env))
}
}
Invalid Operation (V)
FP Exceptions:
Denormal/Unnormal Operand (D)
Software Assist (SWA) fault
Volume 3: Instruction Reference
.
=
,
,
sf f
f
f
f
1
3
4
2
and FR
is computed to infinite precision and then FR
f
f
3
4
, FR
, or FR
is a NaTVal, FR
f
f
f
3
4
2
]) || fp_is_natval(FR[f
2
])) {
4
] = NATVAL;
1
);
1
fp_exception_fault(fp_decode_fault(tmp_fp_env));
FR[f
] = tmp_default_result;
1
tmp_res = fp_mul(fp_reg_read(FR[f
if (f
!= 0)
2
tmp_res = fp_add(tmp_res, fp_reg_read(FR[f
FR[f
] = fp_ieee_round(tmp_res, &tmp_fp_env);
1
);
1
fp_exception_trap(fp_decode_trap(tmp_fp_env));
is set to NaTVal instead of the computed
f
1
Table 2-22 on page
Table 2-23 on page
3:56. For the encodings and
);
1
, f
, f
, f
1
2
3
4
]) ||
3
]), fp_reg_read(FR[f
3
Underflow (U)
Overflow (O)
Inexact (I)
Software Assist (SWA) trap
is added to
f
2
.
f
1
See
3:56. The
Table 5-5
and
Table 5-6 on
))
, f
, f
,
2
3
4
pc, sf, &tmp_fp_env);
]));
4
]), tmp_fp_env);
2
fma
F1
3:77
Need help?
Do you have a question about the ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3 and is the answer not in the manual?
Questions and answers