Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.

...