/* subtract two floats */ float __subsf3 (float a1, float a2) { register union float_long fl1, fl2; fl1.f = a1; fl2.f = a2; /* check for zero args */ if (!fl2.l) return (fl1.f); if (!fl1.l) return (-fl2.f); /* twiddle sign bit and add */ fl2.l ^= SIGNBIT; return __addsf3 (a1, fl2.f); }
// Subtraction; flip the sign bit of b and add. COMPILER_RT_ABI fp_t __subsf3(fp_t a, fp_t b) { return __addsf3(a, fromRep(toRep(b) ^ signBit)); }
float __aeabi_fadd(float a, float b) { return __addsf3(a, b); }