2012-11-10

raspi - hardfloat-3

ArmHardFloatPort
This page gathers thoughts and ideas around a new hard-float ABI ARM port for Debian, hopefully to be released for the the first time with Wheezy (7.0).

Contents

Current Status
Rationale
Supported devices
Background information
VFP
ARM EABI
GCC floating-point options
ld.so hwcaps
Endianess, architecture level, CPU, VFP level
Name of the port
Triplet
Performance improvements and benchmarks
NEON
Hardware
Task List
Partial reference of SoC and supported ISAs
Port naming debate notes
Compiler
Minimum CPU & FPU
Summary of Benefits

[..]
Background information

This section provides some background information on FPUs, ARM EABI, GCC floating-point ABIs, hwcaps...

Raspbian Benchmarking – armel vs armhf
Softfp and Hardfp

For ARM there are two different ABIs (Application Binary Interfaces), soft/softfp and hard. ‘soft’ doesn’t use the FPU at all and uses gcc maths replacement functions to emulate floating point arithmetic. ‘softfp’ uses the FPU but arguments to functions are passed through the integer registers and then passed to the floating point unit. ‘hard’ is using the FPU directly with data passed directly to the floating point unit registers. While soft/softfp are forwards compatible, ie. a ‘soft’ app can run on a softfp system, but not vice-versa, a ‘hardfloat’ application can run on neither of those systems. This means that in order to use hardfloat the system has to be completely recompiled for the hardfloat ABI, down to the last library and program.


Ref:
http://alanyih.blogspot.tw/2012/07/raspi-hardfloat.html
.