mirror of
https://github.com/intel/llvm.git
synced 2026-01-24 08:30:34 +08:00
Fix some files that got left behind in early changeset to unnamed unions fix. Credit to Roman Divacky.
llvm-svn: 80913
This commit is contained in:
@@ -25,8 +25,8 @@ __clzti2(ti_int a)
|
||||
{
|
||||
twords x;
|
||||
x.all = a;
|
||||
const di_int f = -(x.high == 0);
|
||||
return __builtin_clzll((x.high & ~f) | (x.low & f)) +
|
||||
const di_int f = -(x.s.high == 0);
|
||||
return __builtin_clzll((x.s.high & ~f) | (x.s.low & f)) +
|
||||
((si_int)f & ((si_int)(sizeof(di_int) * CHAR_BIT)));
|
||||
}
|
||||
|
||||
|
||||
@@ -28,13 +28,13 @@ __cmpti2(ti_int a, ti_int b)
|
||||
x.all = a;
|
||||
twords y;
|
||||
y.all = b;
|
||||
if (x.high < y.high)
|
||||
if (x.s.high < y.s.high)
|
||||
return 0;
|
||||
if (x.high > y.high)
|
||||
if (x.s.high > y.s.high)
|
||||
return 2;
|
||||
if (x.low < y.low)
|
||||
if (x.s.low < y.s.low)
|
||||
return 0;
|
||||
if (x.low > y.low)
|
||||
if (x.s.low > y.s.low)
|
||||
return 2;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -25,8 +25,8 @@ __ctzti2(ti_int a)
|
||||
{
|
||||
twords x;
|
||||
x.all = a;
|
||||
const di_int f = -(x.low == 0);
|
||||
return __builtin_ctzll((x.high & f) | (x.low & ~f)) +
|
||||
const di_int f = -(x.s.low == 0);
|
||||
return __builtin_ctzll((x.s.high & f) | (x.s.low & ~f)) +
|
||||
((si_int)f & ((si_int)(sizeof(di_int) * CHAR_BIT)));
|
||||
}
|
||||
|
||||
|
||||
@@ -25,13 +25,13 @@ __ffsti2(ti_int a)
|
||||
{
|
||||
twords x;
|
||||
x.all = a;
|
||||
if (x.low == 0)
|
||||
if (x.s.low == 0)
|
||||
{
|
||||
if (x.high == 0)
|
||||
if (x.s.high == 0)
|
||||
return 0;
|
||||
return __builtin_ctzll(x.high) + (1 + sizeof(di_int) * CHAR_BIT);
|
||||
return __builtin_ctzll(x.s.high) + (1 + sizeof(di_int) * CHAR_BIT);
|
||||
}
|
||||
return __builtin_ctzll(x.low) + 1;
|
||||
return __builtin_ctzll(x.s.low) + 1;
|
||||
}
|
||||
|
||||
#endif /* __x86_64 */
|
||||
|
||||
@@ -30,10 +30,10 @@ __fixdfti(double a)
|
||||
{
|
||||
double_bits fb;
|
||||
fb.f = a;
|
||||
int e = ((fb.u.high & 0x7FF00000) >> 20) - 1023;
|
||||
int e = ((fb.u.s.high & 0x7FF00000) >> 20) - 1023;
|
||||
if (e < 0)
|
||||
return 0;
|
||||
ti_int s = (si_int)(fb.u.high & 0x80000000) >> 31;
|
||||
ti_int s = (si_int)(fb.u.s.high & 0x80000000) >> 31;
|
||||
ti_int r = 0x0010000000000000uLL | (0x000FFFFFFFFFFFFFuLL & fb.u.all);
|
||||
if (e > 52)
|
||||
r <<= (e - 52);
|
||||
|
||||
@@ -33,8 +33,8 @@ __fixunsdfti(double a)
|
||||
{
|
||||
double_bits fb;
|
||||
fb.f = a;
|
||||
int e = ((fb.u.high & 0x7FF00000) >> 20) - 1023;
|
||||
if (e < 0 || (fb.u.high & 0x80000000))
|
||||
int e = ((fb.u.s.high & 0x7FF00000) >> 20) - 1023;
|
||||
if (e < 0 || (fb.u.s.high & 0x80000000))
|
||||
return 0;
|
||||
tu_int r = 0x0010000000000000uLL | (fb.u.all & 0x000FFFFFFFFFFFFFuLL);
|
||||
if (e > 52)
|
||||
|
||||
@@ -35,8 +35,8 @@ __fixunsxfti(long double a)
|
||||
{
|
||||
long_double_bits fb;
|
||||
fb.f = a;
|
||||
int e = (fb.u.high.low & 0x00007FFF) - 16383;
|
||||
if (e < 0 || (fb.u.high.low & 0x00008000))
|
||||
int e = (fb.u.high.s.low & 0x00007FFF) - 16383;
|
||||
if (e < 0 || (fb.u.high.s.low & 0x00008000))
|
||||
return 0;
|
||||
tu_int r = fb.u.low.all;
|
||||
if (e > 63)
|
||||
|
||||
@@ -32,10 +32,10 @@ __fixxfti(long double a)
|
||||
{
|
||||
long_double_bits fb;
|
||||
fb.f = a;
|
||||
int e = (fb.u.high.low & 0x00007FFF) - 16383;
|
||||
int e = (fb.u.high.s.low & 0x00007FFF) - 16383;
|
||||
if (e < 0)
|
||||
return 0;
|
||||
ti_int s = -(si_int)((fb.u.high.low & 0x00008000) >> 15);
|
||||
ti_int s = -(si_int)((fb.u.high.s.low & 0x00008000) >> 15);
|
||||
ti_int r = fb.u.low.all;
|
||||
if (e > 63)
|
||||
r <<= (e - 63);
|
||||
|
||||
@@ -76,10 +76,10 @@ __floattidf(ti_int a)
|
||||
/* a is now rounded to DBL_MANT_DIG bits */
|
||||
}
|
||||
double_bits fb;
|
||||
fb.u.high = ((su_int)s & 0x80000000) | /* sign */
|
||||
fb.u.s.high = ((su_int)s & 0x80000000) | /* sign */
|
||||
((e + 1023) << 20) | /* exponent */
|
||||
((su_int)(a >> 32) & 0x000FFFFF); /* mantissa-high */
|
||||
fb.u.low = (su_int)a; /* mantissa-low */
|
||||
fb.u.s.low = (su_int)a; /* mantissa-low */
|
||||
return fb.f;
|
||||
}
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@ __floattixf(ti_int a)
|
||||
/* a is now rounded to LDBL_MANT_DIG bits */
|
||||
}
|
||||
long_double_bits fb;
|
||||
fb.u.high.low = ((su_int)s & 0x8000) | /* sign */
|
||||
fb.u.high.s.low = ((su_int)s & 0x8000) | /* sign */
|
||||
(e + 16383); /* exponent */
|
||||
fb.u.low.all = (du_int)a; /* mantissa */
|
||||
return fb.f;
|
||||
|
||||
@@ -74,9 +74,9 @@ __floatuntidf(tu_int a)
|
||||
/* a is now rounded to DBL_MANT_DIG bits */
|
||||
}
|
||||
double_bits fb;
|
||||
fb.u.high = ((e + 1023) << 20) | /* exponent */
|
||||
fb.u.s.high = ((e + 1023) << 20) | /* exponent */
|
||||
((su_int)(a >> 32) & 0x000FFFFF); /* mantissa-high */
|
||||
fb.u.low = (su_int)a; /* mantissa-low */
|
||||
fb.u.s.low = (su_int)a; /* mantissa-low */
|
||||
return fb.f;
|
||||
}
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ __floatuntixf(tu_int a)
|
||||
/* a is now rounded to LDBL_MANT_DIG bits */
|
||||
}
|
||||
long_double_bits fb;
|
||||
fb.u.high.low = (e + 16383); /* exponent */
|
||||
fb.u.high.s.low = (e + 16383); /* exponent */
|
||||
fb.u.low.all = (du_int)a; /* mantissa */
|
||||
return fb.f;
|
||||
}
|
||||
|
||||
@@ -50,8 +50,8 @@ __multi3(ti_int a, ti_int b)
|
||||
twords y;
|
||||
y.all = b;
|
||||
twords r;
|
||||
r.all = __mulddi3(x.low, y.low);
|
||||
r.s.high += x.high * y.low + x.low * y.high;
|
||||
r.all = __mulddi3(x.s.low, y.s.low);
|
||||
r.s.high += x.s.high * y.s.low + x.s.low * y.s.high;
|
||||
return r.all;
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ __parityti2(ti_int a)
|
||||
{
|
||||
twords x;
|
||||
x.all = a;
|
||||
return __paritydi2(x.high ^ x.low);
|
||||
return __paritydi2(x.s.high ^ x.s.low);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -28,13 +28,13 @@ __ucmpti2(tu_int a, tu_int b)
|
||||
x.all = a;
|
||||
utwords y;
|
||||
y.all = b;
|
||||
if (x.high < y.high)
|
||||
if (x.s.high < y.s.high)
|
||||
return 0;
|
||||
if (x.high > y.high)
|
||||
if (x.s.high > y.s.high)
|
||||
return 2;
|
||||
if (x.low < y.low)
|
||||
if (x.s.low < y.s.low)
|
||||
return 0;
|
||||
if (x.low > y.low)
|
||||
if (x.s.low > y.s.low)
|
||||
return 2;
|
||||
return 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user