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.
                                    -♦-