1.1.42 $MAXFPUREGISTERS : Maximum number of FPU registers for variables

The f$MAXFPUREGISTERS XXXg directive tells the compiler how much oating point variables can be kept in the oating point processor registers on an Intel X86 processor. This switch is ignored unless the -Or (use register variables) optimization is used.

This is quite tricky because the Intel FPU stack is limited to 8 entries. The compiler uses a heuristic algorithm to determine how much variables should be put onto the stack: in leaf procedures it is limited to 3 and in non leaf procedures to 1. But in case of a deep call tree or, even worse, a recursive procedure this can still lead to a FPU stack overow, so the user can tell the compiler how much (oating point) variables should be kept in registers.

The directive accepts the following arguments:

N
where N is the maximum number of FPU registers to use. Currently this can be in the range 0 to 7.
Normal
restores the heuristic and standard behavior.
Default
restores the heuristic and standard behaviour.

Remark:This directive is valid until the end of the current procedure.