diff options
Diffstat (limited to 'lib/fixdfsi.c')
| -rw-r--r-- | lib/fixdfsi.c | 49 | 
1 files changed, 0 insertions, 49 deletions
diff --git a/lib/fixdfsi.c b/lib/fixdfsi.c deleted file mode 100644 index 614d032a4e14..000000000000 --- a/lib/fixdfsi.c +++ /dev/null @@ -1,49 +0,0 @@ -//===-- lib/fixdfsi.c - Double-precision -> integer conversion ----*- C -*-===// -// -//                     The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file implements double-precision to integer conversion for the -// compiler-rt library.  No range checking is performed; the behavior of this -// conversion is undefined for out of range values in the C standard. -// -//===----------------------------------------------------------------------===// - -#define DOUBLE_PRECISION -#include "fp_lib.h" - -#include "int_lib.h" - -ARM_EABI_FNALIAS(d2iz, fixdfsi) - -int __fixdfsi(fp_t a) { -     -    // Break a into sign, exponent, significand -    const rep_t aRep = toRep(a); -    const rep_t aAbs = aRep & absMask; -    const int sign = aRep & signBit ? -1 : 1; -    const int exponent = (aAbs >> significandBits) - exponentBias; -    const rep_t significand = (aAbs & significandMask) | implicitBit; -     -    // If 0 < exponent < significandBits, right shift to get the result. -    if ((unsigned int)exponent < significandBits) { -        return sign * (significand >> (significandBits - exponent)); -    } -     -    // If exponent is negative, the result is zero. -    else if (exponent < 0) { -        return 0; -    } -     -    // If significandBits < exponent, left shift to get the result.  This shift -    // may end up being larger than the type width, which incurs undefined -    // behavior, but the conversion itself is undefined in that case, so -    // whatever the compiler decides to do is fine. -    else { -        return sign * (significand << (exponent - significandBits)); -    } -}  | 
