10.15 __softfp

The __softfp keyword asserts that a function uses software floating-point linkage.

__softfp is a function qualifier. It affects the type of the function.


This keyword has the #pragma equivalent #pragma __softfp_linkage.


Calls to the function pass floating-point arguments in integer registers. If the result is a floating-point value, the value is returned in integer registers. This duplicates the behavior of compilation targeting software floating-point.

This keyword enables the same library to be used by sources compiled to use hardware and software floating-point.


In C++, if a virtual function qualified with the __softfp keyword is to be overridden, the overriding function must also be declared as __softfp. If the functions do not match, the compiler generates an error.

Related concepts
5.49 Compiler support for floating-point computations and linkage
Related reference
8.87 --fpu=name compiler option
10.98 #pragma softfp_linkage, #pragma no_softfp_linkage
10.45 __attribute__((pcs("calling_convention"))) function attribute
Non-Confidential PDF file icon PDF version ARM DUI0472J
Copyright © 2010-2013 ARM. All rights reserved.