Difference between revisions of "GCC floating-point options"
m |
|||
Line 21: | Line 21: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
− | | '' |
+ | | ''none'' || Prevents the compiler from using hardware-based floating-point functions. |
|- |
|- |
||
− | | ''vfpv3 |
+ | | ''vfpv3'' || Enables the ARMv7 VFPv3 floating-point extension. |
|- |
|- |
||
− | | ''vfpv3- |
+ | | ''vfpv3-d16'' || Enables the ARMv7 VFPv3-D16 floating-point extension. |
|- |
|- |
||
− | | ''vfpv3 |
+ | | ''vfpv3-fp16'' || Enables the ARMv7 VFPv3 floating-point extension, including the optional half-precision extensions. |
|- |
|- |
||
− | | '' |
+ | | ''vfpv3-d16-fp16'' || Enables the ARMv7 VFPv3-D16 floating-point extension, including the optional half-precision extensions. |
|- |
|- |
||
− | | '' |
+ | | ''neon'' || Enables the ARMv7 VFPv3 floating-point extension and the Advanced SIMD extension. |
|- |
|- |
||
− | | '' |
+ | | ''vfpv4'' || Enables the ARMv7 VFPv4 floating-point extension. |
|- |
|- |
||
− | | '' |
+ | | ''vfpv4-d16'' || Enables the ARMv7 VFPv4-D16 floating-point extension. |
+ | |- |
||
+ | | ''neon-vfpv4'' || Enables the ARMv7 VFPv4 floating-point extension and the Advanced SIMD extension. |
||
+ | |- |
||
+ | | ''fpv4-sp-d16'' || Enables the ARMv7 FPv4-SP-D16 floating-point extension. |
||
+ | |- |
||
+ | | ''fp-armv8'' || Enables the ARMv8 floating-point extension. |
||
+ | |- |
||
+ | | ''neon-fp-armv8'' || Enables the ARMv8 floating-point extension and the Advanced SIMD extensions. |
||
+ | |- |
||
+ | | ''crypto-neon-fp-armv8'' || Enables the ARMv8 floating-point extension, the cryptographic extension and the Advanced SIMD extension. |
||
|- |
|- |
||
| colspan="2" | ''etc.'' |
| colspan="2" | ''etc.'' |
Revision as of 16:12, 30 March 2020
The GNU C Compiler produces binaries with several options in regards to floating-point operations:
Compiler flag | Description | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
-mfloat-abi=<value> (-mhard-float) (-msoft-float) |
Specifies which floating-point ABI to use. Permissible values are:
The hard-float and soft-float ABIs are not link-compatible. You must compile your entire program with the same ABI and link with a compatible set of libraries. | ||||||||||||||||||||||||||||
-mfpu=<value> (-mfp=<value>) (-mfpe=<value>) |
Specifies the available floating-point hardware on the target. Permissible values include:
Has no effect when -mfloat-abi=soft is specified. |
embOS for GCC typically is shipped with distinct sets of libraries for each floating-point ABI. While there is no immediate effect on embOS itself, this allows for compalibity with all applications and third-party libraries customers may utilize.