User Guide

x87 Floating-Point Programming 259
24592—Rev. 3.15—November 2009 AMD64 Technology
Table 6-10 shows the encodings of the indefinite values for each data type. For floating-point numbers,
the indefinite value is a special form of QNaN. For integers, the indefinite value is the largest
representable negative two’s-complement number, 80...00h. (This value is interpreted as the largest
representable negative number, except when a masked IE exception occurs, in which case it is
interpreted as an indefinite value.) For packed-decimal numbers, the indefinite value has no other
meaning than indefinite.
Table 6-9. Unsupported Floating-Point Encodings
Classification Sign
Biased
Exponent
1
Significand
2
Positive Pseudo-NaN
0 111 ... 111
0.111 ... 111
to
0.000 ... 001
Positive Pseudo-Infinity
0 111 ... 111 0.000 ... 000
Positive Unnormal
0
111 ... 110
to
000 ... 001
0.111 ... 111
to
0.000 ... 000
Negative Unnormal
1
000 ... 001
to
111 ... 110
0.000 ... 000
to
0.111 ... 111
Negative Pseudo-Infinity
1 111 ... 111 0.000 ... 000
Negative Pseudo-NaN
1 111 ... 111
0.000 ... 001
to
0.111 ... 111
Note:
1. The actual exponent field length is 15 bits.
2. The “0.” prefix represent the explicit integer bit. The actual fraction field length is 63
bits.
Table 6-10. Indefinite-Value Encodings
Data Type Indefinite Encoding
Single-Precision Floating-Point FFC0_0000h
Double-Precision Floating-Point FFF8_0000_0000_0000h
Extended-Precision Floating-Point FFFF_C000_0000_0000_0000h
16-Bit Integer 8000h
32-Bit Integer 8000_0000h
64-Bit Integer 8000_0000_0000_0000h
80-Bit BCD FFFF_C000_0000_0000_0000h