64 bit VFX Forth systems for AMD64/Intel64 processors
released from January 2023 onwards can use one of several
floating point packages. The Extern:
interface is
adjusted so that FP doubles and FP floats are converted
to the form required by the native ABI. Locals are also
according to the selection. You, the user must make this
selection. There are are three choices.
0 value FpSystem \ -- n
The value FPSYSTEM
defines which floating point pack is installed
and active. See the Floating Point chapters for
further details.
Each floating point pack defines its own type as follows:
When FPSystem changes, the following files that use FPSystem are affected:
Extern*.fth kernel64.fth Tokeniser.fth
Lib/x64/Ndpx64.fth Lib/Hfpx64 Lib/x64/FPSSE64.fth
At present, only 0, 1, 2 and 4 are valid values of FPSystem in 64 systems.
The EXTERN:
interfaces use FPSYSTEM
to show how floats
and doubles are generated. The float is taken from its stack,
converted as required and placed in the register of memory
location required by the call. On return, the return result
is converted back as required by FPSYSTEM
.
FP locals are held in memory in the form defined by FPSYSTEM
.
Only one float pack can be installed. This is checked at compile time. To replace the floating point pack use:
integers
remove-FP-pack
include <sourcefile>
By default, x64 systems come with Lib/x64/Ndpx64.fth compiled. At present this offers the best options for precision and speed.