| |||
| Home > Compiler Coding Practices > Implementation of Vector Floating-Point (VFP) support code | |||
For convenience, an implementation of VFP support code that can be used in your system is provided with your installation of the ARM compilation tools. The support code comprises:
The libraries vfpsupport.l and vfpsupport.b for
emulating VFP operations bounced by the hardware.
These files are located in the \lib\armlib subdirectory
of your installation.
C source code and assembly language source code implementing top-level, second-level and user-level interrupt handlers.
These files can be found in the vfpsupport subdirectory
of the Examples directory of your ARM compilation
tools distribution at install_directory\Examples\...\vfpsupport.
These files might require modification to integrate VFP support with your operating system.
C source code and assembly language source code for accessing subarchitecture functionality of VFP coprocessors.
These files are located in the vfpsupport subdirectory
of the Examples directory of your ARM compilation
tools distribution at install_directory\Examples\...\vfpsupport.
When the VFP coprocessor bounces an instruction, an Undefined
Instruction exception is signaled to the processor and the VFP support
code is entered through the Undefined Instruction vector. The top-level
and second-level interrupt handlers perform some initial processing
of the signal, for example, ensuring that the exception is not caused
by an illegal instruction. The user-level interrupt handler then
calls the appropriate library function in the library vfpsupport.l or vfpsupport.b to
emulate the VFP operation in software.
You do not have to use VFP support code:
when building with --fpmode=std
when no trapping of uncommon or exceptional cases is required
when the VFP coprocessor is operating in RunFast mode
when the hardware coprocessor is a VFPv3-based system.
Compiler Reference: