Intel 64 and IA-32 Architectures Software Developers Manual Volume 2A, Instruction Set Reference, A-M

Vol. 2 3-319
INSTRUCTION SET REFERENCE, A-M
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.
When the source operand is an integer 0, it is treated as a +0. This instruction’s oper-
ation is the same in non-64-bit modes and 64-bit mode.
Operation
IF DEST = 0
THEN
#Z;
ELSE
IF Instruction
= FIDIVR
THEN
DEST ConvertToDoubleExtendedPrecisionFP(SRC) / DEST;
ELSE (* Source operand is floating-point value *)
DEST SRC / DEST;
FI;
Table 3-30. FDIVR/FDIVRP/FIDIVR Results
DEST
−∞
F 0 +0 +F +∞ NaN
−∞
* +∞ +∞
−∞ −∞
*NaN
SRC F +0 +F****-F0NaN
I +0 +F****-F0NaN
0 +0 +0* *0 0NaN
+0 0 0* *+0 +0NaN
+I 0-F****+F +0NaN
+F 0-F****+F +0NaN
+
*
−∞ −∞
+∞ +∞ *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.