I didn't mean to imply the test written in my previous comment was _broken_ with -mfloat-abi=softfp, but it does compile to (in Thumb mode):
movs r0, #0
movs r1, #0
bx lr
which again is entirely sensible: for the soft-float ABI, the return value must be in core registers, so it'd be silly to load the 0.0 value into an FP register only to immediately transfer it to core registers.
I didn't mean to imply the test written in my previous comment was _broken_ with -mfloat-abi=softfp, but it does compile to (in Thumb mode):
movs r0, #0
movs r1, #0
bx lr
which again is entirely sensible: for the soft-float ABI, the return value must be in core registers, so it'd be silly to load the 0.0 value into an FP register only to immediately transfer it to core registers.