80x87 Floating Point Emulation Under Windows NT

Last reviewed: May 5, 1997
Article ID: Q93353
The information in this article applies to:
  • Microsoft Windows NT operating system version 3.1

SUMMARY

The math emulator provided by the Windows NT kernel is intended to provide emulation of 80387 floating-point instructions. However, only ANSI floating-point precision is provided. Long double precision is not emulated. This is consistent with MIPS (millions of instructions per second) architecture.

Some other minor differences are known and may remain in the final version. For example, tests on the 80387 chip revealed that the FSAVE instruction leaves the Error Offset and Error Selector fields in the FP environment block null if there are no pending exceptions. The Windows NT emulator fills these fields with the address of the most recently emulated instruction, even when no exception is pending. This behavior may remain because it provides extra information to the system programmer and because the emulator status word accurately indicates any pending exceptions.

MORE INFORMATION

The information applies to Win32s as well.

The floating point emulator does not support CS overrides. This does not effect compiler-generated code, only hand-tuned assembly code. This was done to improve speed, since applications that were written in C are not affected.


Additional query words: prodnt
Keywords : kbhw nthw
Version : 3.1
Platform : WINDOWS


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: May 5, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.