Fix passing floats to alien functions on armhf.

Assign the registers properly. Handle floats passed on the stack.
Optimize alien double passing on arm-softfp.

Use fmdrr instead of fmdlr and fmdhr.