mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-28 03:25:23 +00:00
Inline a trivial helper function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152577 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -722,13 +722,9 @@ unsigned APInt::countLeadingZerosSlowCase() const {
|
|||||||
return Count;
|
return Count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned countLeadingOnes_64(uint64_t V, unsigned skip) {
|
|
||||||
return CountLeadingOnes_64(V << skip);
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned APInt::countLeadingOnes() const {
|
unsigned APInt::countLeadingOnes() const {
|
||||||
if (isSingleWord())
|
if (isSingleWord())
|
||||||
return countLeadingOnes_64(VAL, APINT_BITS_PER_WORD - BitWidth);
|
return CountLeadingOnes_64(VAL << (APINT_BITS_PER_WORD - BitWidth));
|
||||||
|
|
||||||
unsigned highWordBits = BitWidth % APINT_BITS_PER_WORD;
|
unsigned highWordBits = BitWidth % APINT_BITS_PER_WORD;
|
||||||
unsigned shift;
|
unsigned shift;
|
||||||
@@ -739,13 +735,13 @@ unsigned APInt::countLeadingOnes() const {
|
|||||||
shift = APINT_BITS_PER_WORD - highWordBits;
|
shift = APINT_BITS_PER_WORD - highWordBits;
|
||||||
}
|
}
|
||||||
int i = getNumWords() - 1;
|
int i = getNumWords() - 1;
|
||||||
unsigned Count = countLeadingOnes_64(pVal[i], shift);
|
unsigned Count = CountLeadingOnes_64(pVal[i] << shift);
|
||||||
if (Count == highWordBits) {
|
if (Count == highWordBits) {
|
||||||
for (i--; i >= 0; --i) {
|
for (i--; i >= 0; --i) {
|
||||||
if (pVal[i] == -1ULL)
|
if (pVal[i] == -1ULL)
|
||||||
Count += APINT_BITS_PER_WORD;
|
Count += APINT_BITS_PER_WORD;
|
||||||
else {
|
else {
|
||||||
Count += countLeadingOnes_64(pVal[i], 0);
|
Count += CountLeadingOnes_64(pVal[i]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user