Small update about the progress so far: I built a patch which add basic support for hardfloat ABI. It correctly place float argument in VFP registers when calling a function and can fall back to softfp if the function called is variadic. However, still a lot remains to be done:
1) Return float result in VFP register(s) 2) Use VFP registers for homogeneous aggregate (see §4.3.5 and §6.1.2.1 in AAPCS) 3) Pack 2 consecutive float arguments into one VFP register 4) Refactor the code to make both the patch and the resulting code compact 5) Support hardfloat ABI in prologue and epilogue The good news is that except for item 3, all these should be much faster than what was done because less code needs to be changed.
signature.asc
Description: This is a digitally signed message part.

