Calls to Math Coprocessor Option (/FPc87)

The calls to math coprocessor option (/FPc87) generates function calls to routines in the math coprocessor library (mLIBC7.LIB) that issue the corresponding 80x87 instructions. As with the inline math coprocessor instructions option (/FPi87), at link time you can choose to link with an emulator library (mLIBCE.LIB). However, /FPc offers more flexibility in choosing libraries, since you can change your mind and link with the appropriate alternate math library as well (mLIBCA.LIB).

The disadvantages of using the calls to math coprocessor option as opposed to the inline coprocessor option are as follows:

Your executable size is larger because a call requires more instructions than a true coprocessor instruction.

Your program does not execute as fast because you must issue a function call for each floating-point operation.

You cannot link with an alternate math library if your program uses the intrinsic forms of floating-point library routines (that is, if you have compiled the program with the /Oi or /Ox option, selected the Generate Intrinsic Functions option from the Optimizations dialog box in the Programmer's WorkBench, or specified math functions in an intrinsic pragma).

You must have a math coprocessor installed to run programs compiled with the /FPc option and linked with a math coprocessor library. Otherwise, the program fails and the following error message is displayed:

run-time error R6002

- floating point not loaded

Note:

Certain optimizations are not performed when you use the calls to math coprocessor option. This can reduce the efficiency of your code; also, since arithmetic of different precision can result, there may be slight differences in your results.