5.42 Default selection of hardware or software floating-point support

The default target FPU architecture is derived from use of the --cpu option.

If the processor specified with --cpu has a VFP coprocessor, the default target FPU architecture is the VFP architecture for that processor. For example, the option --cpu ARM1136JF-S implies the option --fpu vfpv2.

If you are building ARM Linux applications using --arm_linux or --arm_linux_paths, the default is always software floating-point linkage. Even if you specify a processor that implies an FPU (for example, --cpu=ARM1136JF-S), the compiler still defaults to --fpu=softvfp+vfp, not --fpu=vfp.

If a VFP coprocessor is present, VFP instructions are generated. If there is no VFP coprocessor, the compiler generates code that makes calls to the software floating-point library fplib to carry out floating-point operations. fplib is available as part of the standard distribution of the ARM compilation tools suite of C libraries.

Related concepts
5.41 Compiler support for floating-point arithmetic
5.43 Example of hardware and software support differences for floating-point arithmetic
5.44 Vector Floating-Point (VFP) architectures
5.45 Limitations on hardware handling of floating-point arithmetic
5.46 Implementation of Vector Floating-Point (VFP) support code
5.47 Compiler and library support for half-precision floating-point numbers
5.48 Half-precision floating-point number format
5.49 Compiler support for floating-point computations and linkage
5.50 Types of floating-point linkage
5.51 Compiler options for floating-point linkage and computations
Related reference
5.52 Floating-point linkage and computational requirements of compiler options
5.53 Processors and their implicit Floating-Point Units (FPUs)
Related information
Floating-point Support
Non-ConfidentialPDF file icon PDF versionARM DUI0472J
Copyright © 2010-2013 ARM. All rights reserved.