#include "longlong.h" #define HIGH_HALFWORD_COEFF (((long long) 1) << (BITS_PER_WORD / 2)) #define HIGH_WORD_COEFF (((long long) 1) << BITS_PER_WORD) double __floatdidf (u) long long u; { double d; int negate = 0; if (u < 0) u = -u, negate = 1; d = (unsigned int) (u >> BITS_PER_WORD); d *= HIGH_HALFWORD_COEFF; d *= HIGH_HALFWORD_COEFF; d += (unsigned int) (u & (HIGH_WORD_COEFF - 1)); return (negate ? -d : d); }