Fix hardfloat detection

gcc has a builtin define to denote hard abi when in use, e.g. when
using -mfloat-abi=hard it will define `__ARM_PCS_VFP` to 1 and therefore
we should check that to determine which calling convention is in use
and not `__VFP_FP__` which merely indicates presence of VFP unit

The fix has been provided by Khem Raj <raj.khem@gmail.com>

Updated to v0.8 branch and resubmitted by Jason Kridner <jdk@ti.com>

Upstream-Status: Forwarded