User Guide

258 x87 Floating-Point Programming
AMD64 Technology 24592—Rev. 3.15—November 2009
Unsupported Encodings. Table 6-9 on page 259 shows the encodings of unsupported values. These
values can exist only in the double-extended-precision format, because they require an explicit integer
bit. The processor does not generate them as results, and they cause an invalid-operation exception (IE)
when used as source operands.
Indefinite Values. Floating-point, integer, and packed-decimal data types each have a unique
encoding that represents an indefinite value. The processor returns an indefinite value when a masked
invalid-operation exception (IE) occurs. The indefinite values for various data types are provided in
Table 4-7 on page 132.
For example, if a floating-point arithmetic operation is attempted using a source operand which is in an
unsupported format, and IE exceptions are masked, the floating-point indefinite value is returned as
the result. Or, if an integer store instruction overflows its destination data type, and IE exceptions are
masked, the integer indefinite value is returned as the result.
Negative
Floating-Point
Numbers
Negative Zero
1 000 ... 000 0.000 ... 000
Negative Denormal
1 000 ... 000
0.000 ... 001
to
0.111 ... 111
Negative Pseudo-
Denormal
3
1 000 ... 000
1.000 ... 001
to
1.111 ... 111
Negative Normal
1
000 ... 001
to
111 ... 110
1.000 ... 000
to
1.111 ... 111
Negative Infinity (-)
1 111 ... 111 1.000 ... 000
Negative
Non-Numbers
SNaN
1 111 ... 111
1.000 ... 001
to
1.011 ... 111
QNaN
4
1 111 ... 111
1.100 ... 000
to
1.111 ... 111
Table 6-8. Supported Floating-Point Encodings (continued)
Classification Sign
Biased
Exponent
1
Significand
2
Note:
1. The actual exponent field length is 8, 11, or 15 bits, depending on operand preci-
sion.
2. The “1.” and “0.” prefixes represent the implicit or explicit integer bit. The actual frac-
tion field length is 23, 52, or 63 bits, depending on operand precision.
3. Pseudo-denormals can only occur in double-extended-precision format, because
they require an explicit integer bit.
4. The floating-point indefinite value is a QNaN with a negative sign and a significand
whose value is 1.100 ... 000.