This adds hard-float implementation for the following builtins:
- __fixdfdi()
- __fixsfdi()
- __fixunsdfdi()
- __fixunssfdi()
The soft-float implementation does never raise floating point exceptions,
which doesn't allow clients to detect floating point conversion errors.
I must mention that I had to refer to libgcc's implementation to write these
functions.
Related unit-tests of compiler-rt passed with these changes.