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