Vector Floating Point Architecture (VFP)

Describes the implementation of the ARM Vector Floating Point Architecture (VFPv2) on Symbian platform.

ARM provide a hardware floating point coprocessor that provides floating point computation that is fully compliant with IEEE Std 754-1985.We refer to the coprocessor as 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.

You should read Floating point support in Symbian^3 Tools Guide > Building. The guide contains information about applications and user-side code, which is also applicable to code running on the kernel side. However there are a number of restrictions that must be observed:

  • You cannot use VFP instructions in any interrupt service routine.

  • You cannot use VFP instructions when the kernel is locked, for example, in an IDFC or after calling NKern::Lock()

  • You cannot use VFP instructions in any section of code which runs with a fast mutex held.

Using VFP instructions in these situations can lead to data being corrupted, or the kernel panicking. If you rely on the compiler to generate VFP instructions, rather than using inline assembler, it is extremely important that you do not use any floating point values in these situations. The compiler may generate VFP instructions for the most trivial floating point operations and even for simple assignments.