version 1.3, 2008/03/21 23:13:48 |
version 1.4, 2011/03/20 23:15:35 |
|
|
|
|
void |
void |
#ifdef KR_headers |
#ifdef KR_headers |
ULtoQ(L, bits, exp, k) ULong *L; ULong *bits; Long exp; int k; |
ULtoQ(L, bits, expt, k) ULong *L; ULong *bits; Long expt; int k; |
#else |
#else |
ULtoQ(ULong *L, ULong *bits, Long exp, int k) |
ULtoQ(ULong *L, ULong *bits, Long expt, int k) |
#endif |
#endif |
{ |
{ |
switch(k & STRTOG_Retmask) { |
switch(k & STRTOG_Retmask) { |
Line 69 ULtoQ(ULong *L, ULong *bits, Long exp, i |
|
Line 69 ULtoQ(ULong *L, ULong *bits, Long exp, i |
|
L[_3] = bits[0]; |
L[_3] = bits[0]; |
L[_2] = bits[1]; |
L[_2] = bits[1]; |
L[_1] = bits[2]; |
L[_1] = bits[2]; |
L[_0] = (bits[3] & ~0x10000) | ((exp + 0x3fff + 112) << 16); |
L[_0] = (bits[3] & ~0x10000) | ((expt + 0x3fff + 112) << 16); |
break; |
break; |
|
|
case STRTOG_Denormal: |
case STRTOG_Denormal: |
Line 104 strtorQ(CONST char *s, char **sp, int ro |
|
Line 104 strtorQ(CONST char *s, char **sp, int ro |
|
static FPI fpi0 = { 113, 1-16383-113+1, 32766-16383-113+1, 1, SI }; |
static FPI fpi0 = { 113, 1-16383-113+1, 32766-16383-113+1, 1, SI }; |
FPI *fpi, fpi1; |
FPI *fpi, fpi1; |
ULong bits[4]; |
ULong bits[4]; |
Long exp; |
Long expt; |
int k; |
int k; |
|
|
fpi = &fpi0; |
fpi = &fpi0; |
Line 113 strtorQ(CONST char *s, char **sp, int ro |
|
Line 113 strtorQ(CONST char *s, char **sp, int ro |
|
fpi1.rounding = rounding; |
fpi1.rounding = rounding; |
fpi = &fpi1; |
fpi = &fpi1; |
} |
} |
k = strtodg(s, sp, fpi, &exp, bits); |
k = strtodg(s, sp, fpi, &expt, bits); |
if (k == STRTOG_NoMemory) |
if (k == STRTOG_NoMemory) |
return k; |
return k; |
ULtoQ((ULong*)L, bits, exp, k); |
ULtoQ((ULong*)L, bits, expt, k); |
return k; |
return k; |
} |
} |