Intel 253666-024US Computer Hardware User Manual


 
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.
IMeans Integer.
* Indicates invalid-arithmetic-operand (#IA) exception.