1*48fb7bfaSmrg /* Public domain. */ 2*48fb7bfaSmrg typedef int SItype __attribute__ ((mode (SI))); 3*48fb7bfaSmrg typedef unsigned int USItype __attribute__ ((mode (SI))); 4*48fb7bfaSmrg typedef float DFtype __attribute__ ((mode (DF))); 5*48fb7bfaSmrg 6*48fb7bfaSmrg DFtype __floatunsidf(USItype u)7*48fb7bfaSmrg__floatunsidf (USItype u) 8*48fb7bfaSmrg { 9*48fb7bfaSmrg SItype s = (SItype) u; 10*48fb7bfaSmrg DFtype r = (DFtype) s; 11*48fb7bfaSmrg if (s < 0) 12*48fb7bfaSmrg r += (DFtype)2.0 * (DFtype) ((USItype) 1 13*48fb7bfaSmrg << (sizeof (USItype) * __CHAR_BIT__ - 1)); 14*48fb7bfaSmrg return r; 15*48fb7bfaSmrg } 16