summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2008-02-12 21:47:33 +0000
committerDan Gohman <gohman@apple.com>2008-02-12 21:47:33 +0000
commit5b3dffefa2afd8de96ab5cb08a8ac3514d973550 (patch)
tree557c5dc9bc9a753c3d5752bfc8770702e09630d1 /llvm
parent481d4b27dd34029399497f6536590033788c5698 (diff)
downloadbcm5719-llvm-5b3dffefa2afd8de96ab5cb08a8ac3514d973550.tar.gz
bcm5719-llvm-5b3dffefa2afd8de96ab5cb08a8ac3514d973550.zip
Change APInt::getBitsSet to accept a "half-open" range, where the
hiBit parameter marks the index one past the last desired set bit. llvm-svn: 47032
Diffstat (limited to 'llvm')
-rw-r--r--llvm/include/llvm/ADT/APInt.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/llvm/include/llvm/ADT/APInt.h b/llvm/include/llvm/ADT/APInt.h
index a1ccb8513c3..34c05e6df70 100644
--- a/llvm/include/llvm/ADT/APInt.h
+++ b/llvm/include/llvm/ADT/APInt.h
@@ -370,22 +370,22 @@ public:
APInt getLoBits(uint32_t numBits) const;
/// Constructs an APInt value that has a contiguous range of bits set. The
- /// bits from loBit to hiBit will be set. All other bits will be zero. For
- /// example, with parameters(32, 0, 15) you would get 0x0000FFFF. If hiBit is
- /// less than loBit then the set bits "wrap". For example, with
- /// parameters (32, 28, 3), you would get 0xF000000F.
+ /// bits from loBit (inclusive) to hiBit (exclusive) will be set. All other
+ /// bits will be zero. For example, with parameters(32, 0, 16) you would get
+ /// 0x0000FFFF. If hiBit is less than loBit then the set bits "wrap". For
+ /// example, with parameters (32, 28, 4), you would get 0xF000000F.
/// @param numBits the intended bit width of the result
/// @param loBit the index of the lowest bit set.
/// @param hiBit the index of the highest bit set.
/// @returns An APInt value with the requested bits set.
/// @brief Get a value with a block of bits set.
static APInt getBitsSet(uint32_t numBits, uint32_t loBit, uint32_t hiBit) {
- assert(hiBit < numBits && "hiBit out of range");
+ assert(hiBit <= numBits && "hiBit out of range");
assert(loBit < numBits && "loBit out of range");
if (hiBit < loBit)
- return getLowBitsSet(numBits, hiBit+1) |
+ return getLowBitsSet(numBits, hiBit) |
getHighBitsSet(numBits, numBits-loBit);
- return getLowBitsSet(numBits, hiBit-loBit+1).shl(loBit);
+ return getLowBitsSet(numBits, hiBit-loBit).shl(loBit);
}
/// Constructs an APInt value that has the top hiBitsSet bits set.
OpenPOWER on IntegriCloud