Vol. 2A 3-317
INSTRUCTION SET REFERENCE, A-M
FDIV/FDIVP/FIDIV—Divide
If an unmasked divide-by-zero exception (#Z) is generated, no result is stored; if the
exception is masked, an ∞ of the appropriate sign is stored in the destination
operand.
The following table shows the results obtained when dividing 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 SRC = 0
THEN
#Z;
ELSE
IF Instruction is FIDIV
THEN
DEST ← DEST / ConvertToDoubleExtendedPrecisionFP(SRC);
ELSE (* Source operand is floating-point value *)
DEST ← DEST / SRC;
FI;
FI;
Table 3-29. FDIV/FDIVP/FIDIV Results
DEST
-
∞ −F −0 +0 +F+∞ NaN
-∞ * +0 +0 −0 −0*NaN
−F+∞ +F +0 −0 −F-∞ NaN
−I+∞ +F +0 −0 −F-∞ NaN
SRC −0+
∞ ******-∞ NaN
+0-∞ ******+∞ NaN
+I-∞ −F −0 +0 +F+∞ NaN
+F-
∞ −F −0 +0 +F+∞ NaN
+∞ * −0 −0 +0 +0*NaN
NaN NaN NaN NaN NaN NaN NaN NaN
NOTES:
F Means finite floating-point value.
IMeans integer.
* Indicates floating-point invalid-arithmetic-operand (#IA) exception.
** Indicates floating-point zero-divide (#Z) exception.