C/C++ Compiler (cl.hlp) (
Table of Contents;
Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
Inline Emulation: Details
◄Up► ◄Contents► ◄Index► ◄Back►
─────C/C++ Compiler─────────────────────────────────────────────────────────
Syntax: /FPi
This option is the default. The compiler generates inline
instructions for an 80x87 coprocessor that run whether or not a
coprocessor is present. This option works because the compiler
does not generate true inline 80x87 instructions. Instead, it
generates software interrupts to library code. The library code,
in turn, adds fixups to the interrupts to select either the
emulator or the coprocessor, depending on whether a coprocessor is
present.
When you use the /FPi option, the compiler places the name of the
emulator library (mLIBCE.LIB) in the object file. At link time,
you can specify the 80x87 library (mLIBC7.LIB) instead.
If you want true inline 80x87 instructions, use the inline math
coprocessor option (/FPi87).
Real Mode
In real mode, the fixup tells the linker to add a constant onto
all floating-point instructions. This process turns the inline
instructions into software interrupts that are trapped by the
emulator.
If there is no 80x87 coprocessor, the emulator uses the interrupts
to emulate an 80x87. If there is one, the emulator converts the
interrupts back into 80x87 instructions.
Protected Mode
In protected mode, the linker ignores the fixup. If the target
computer does not have a coprocessor, an unsupported extension
exception occurs. The extension is then vectored to library code.
-♦-