...
The GCC flag -mfloat-abi=
specifies which floating-point ABI to use. Permissible options are: soft
, softfp
and hard
.
M
soft
causes GCC to generate output containing library calls for all floating-point operations.softfp
allows generation of code using hardware floating-point instructions, but still uses the soft-float calling conventions. That means that function calls are generated to pass floating point arguments in integer registers, which means that soft and softfp code can be intermixed. The problem is that copying data from integer to floating point registers incurs a pipeline stall for each register passed or a memory read for stack items. This has noticeable performance implications in that a lot of time is spent in function prologue and epilogue copying data back and forth to FPU registers.hard
allows generation of floating-point instructions and uses FPU-specific calling conventions, that means that floating point arguments are passed directly in FPU registers.
...