APPENDIX
C
IMPLEMENTING
THE
IEEE
P754 STANDARD
The 80287 NPX and standard support library software, provides an implementation of the
IEEE
"A
Proposed Standard for Binary Floating-Point Arithmetic," Draft 10.0, Task P754, of December
2,
1982. The 80287 Support Library, described
in
80287 Support Library Reference Manual, Order
Number 122129,
is
an example of such a support library.
This appendix describes the relationship between the 80287
NPX and the IEEE Standard. Where the
Standard has options, Intel's choices
in
implementing the 80287 are described. Where portions of the
Standard are implemented through software, this appendix indicates which modules of the 80287
Support Library implement the Standard. Where special software in addition to the Support Library
may be required by your application, this appendix indicates
how
to
write this software.
This appendix contains many terms with precise technical meanings, specified
in
the
754
Standard.
Where these terms are used, they have been capitalized to emphasize the precision of their meanings.
The Glossary provides the definitions for all capitalized phrases in this appendix.
OPTIONS
IMPLEMENTED
IN
THE
80287
The 80287 SHORT_REAL and LONG_REAL formats conform precisely to the Standard's Single
and Double Floating-Point Numbers, respectively. The 80287
TEMP_REAL format
is
the same as the
Standard's Double Extended format. The Standard
allQws
a choice of
Bias
in
representing the exponent;
the 80287 uses the Bias 16383 decimal.
.
For the Double Extended format, the Standard contains an option for the meaning of the minimum
exponent combined with a nonzero significand. The Bias for this special case can be either 16383, as
in all the other cases, or 16382, making the smallest exponent equivalent
to
the second-smallest exponent.
The 80287 uses the Bias 16382 for this case. This allows the 80287
to
distinguish between Denormal
numbers (integer part
is
zero, fraction
is
nonzero, Biased exponent
is
0)
and Unnormal numbers of the
Same
value (same as the denormal except the Biased Exponent
is
1).
The Standard allows flexibility in specifying which NaNs are trapping and which are nontrapping. The
EH287.LIB module of the 80287 Support Library provides a software implementation of nontrapping
NaNs, and defines
one
distinction between trapping and nontrapping NaNs:
If
the most significant bit
of the fractional part of a
NaN
is
1,
the
NaN
is
nontrapping.
If
it
is
0,
the
NaN
is
trapping.
When a masked Invalid
Operation error involves
two
NaN
inputs, the Standard allows flexibility in
choosing which
NaN
is
output. The 80287 selects the
NaN
whose absolute value
is
greatest.
AREAS
OF
THE
STANDARD
IMPLEMENTED
IN
SOFTWARE
There are five areas of the Standard that are not implemented directly in the 80287 hardware; these
areas are instead implemented in software as part of the 80287 Support Library.
C-1