mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-15 22:28:18 +00:00
Fix undefined shifts and abs in Alpha backend. Based on patch by Ahmed Charles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141909 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -80,7 +80,7 @@ namespace {
|
|||||||
// Otherwise we don't know that the it's okay to zapnot this entire
|
// Otherwise we don't know that the it's okay to zapnot this entire
|
||||||
// byte. Only do this iff we can prove that the missing bits are
|
// byte. Only do this iff we can prove that the missing bits are
|
||||||
// already null, so the bytezap doesn't need to really null them.
|
// already null, so the bytezap doesn't need to really null them.
|
||||||
BitsToCheck |= ~Constant & (0xFF << 8*i);
|
BitsToCheck |= ~Constant & (0xFFULL << 8*i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -114,9 +114,8 @@ namespace {
|
|||||||
if (!x) return 0;
|
if (!x) return 0;
|
||||||
unsigned at = CountLeadingZeros_64(x);
|
unsigned at = CountLeadingZeros_64(x);
|
||||||
uint64_t complow = 1ULL << (63 - at);
|
uint64_t complow = 1ULL << (63 - at);
|
||||||
uint64_t comphigh = 1ULL << (64 - at);
|
uint64_t comphigh = complow << 1;
|
||||||
//cerr << x << ":" << complow << ":" << comphigh << "\n";
|
if (x - complow <= comphigh - x)
|
||||||
if (abs64(complow - x) <= abs64(comphigh - x))
|
|
||||||
return complow;
|
return complow;
|
||||||
else
|
else
|
||||||
return comphigh;
|
return comphigh;
|
||||||
|
Reference in New Issue
Block a user