Vector Floating Point (VFP)

ARM provide a hardware floating point coprocessor that provides floating point computation that is fully compliant with IEEE Std 754-1985.

When a phone has this hardware, the base port must be configured to use it.

The ARM architecture is called the ARM Vector Floating Point Architecture (VFPv2), and the coprocessor is also called the VFP unit.

Symbian platform supports the use of VFPv2 on platforms where the required hardware is present in both RunFast mode and in IEEE-without-exceptions mode. See ARM's Vector Floating-point Coprocessor Technical reference Manual for more details on the coprocessor, its architecture, and its execution modes.

Applications and, in a more limited sense, kernel side code can use VFP in one of two ways:

  • indirectly through the use of floating point support (helper) functions generated by the compiler.

  • directly, either through instructions generated by the compiler, or hand-written instructions written in assembler.

An application uses the armfpu statement in its .mmp file to specify how it wants floating point to be handled. By choosing to use the floating point support functions, an application does not need to know how they are implemented or even whether these functions make use of a VFP unit. However, if a device does have a VFP unit, then the base port needs to replace the default floating point support functions with VFP-enabled functions if applications are to take advantage of the hardware.

See also