beautypg.com

Intel 253666-024US User Manual

Page 398

background image

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.