Intel 253666-024US User Manual
Page 398

3-352 Vol. 2A
FMUL/FMULP/FIMUL—Multiply
INSTRUCTION SET REFERENCE, A-M
The FIMUL instructions convert an integer source operand to double extended-
precision floating-point format before performing the multiplication.
The sign of the result is always the exclusive-OR of the source signs, even if one or
more of the values being multiplied is 0 or ∞. When the source operand is an integer
0, it is treated as a +0.
The following table shows the results obtained when multiplying various classes of
numbers, assuming that neither overflow nor underflow occurs.
This instruction’s operation is the same in non-64-bit modes and 64-bit mode.
Operation
IF Instruction
=
FIMUL
THEN
DEST ← DEST ∗ ConvertToDoubleExtendedPrecisionFP(SRC);
ELSE (* Source operand is floating-point value *)
DEST ← DEST ∗ SRC;
FI;
IF Instruction
=
FMULP
THEN
PopRegisterStack;
FI;
Table 3-34. FMUL/FMULP/FIMUL Results
DEST
−
∞
−F
−0
+0
+F
+
∞
NaN
−
∞
+
∞
+
∞
*
*
−
∞
−
∞
NaN
−F
+
∞
+F
+0
−0
−F
−
∞
NaN
−I
+
∞
+F
+0
−0
−F
−
∞
NaN
SRC
−0
*
+0
+0
−0
−0
*
NaN
+0
*
−0
−0
+0
+0
*
NaN
+I
−
∞
−F
−0
+0
+F
+
∞
NaN
+F
−
∞
−F
−0
+0
+F
+
∞
NaN
+
∞
−
∞
−
∞
*
*
+
∞
+
∞
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NOTES:
F Means finite floating-point value.
I Means Integer.
* Indicates invalid-arithmetic-operand (#IA) exception.