mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-25 21:46:50 +00:00
Implement the getBitsSet function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35310 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3f3ee6e588
commit
8f969ee62c
@ -340,7 +340,16 @@ public:
|
||||
/// @param loBit the index of the lowest 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 hiBit, uint32_t loBit = 0);
|
||||
static APInt getBitsSet(uint32_t numBits, uint32_t hiBit, uint32_t loBit = 0){
|
||||
assert(hiBit < numBits && "hiBit out of range");
|
||||
assert(loBit < numBits && "loBit out of range");
|
||||
if (hiBit < loBit)
|
||||
return getLowBitsSet(numBits, hiBit+1) |
|
||||
getHighBitsSet(numBits, numBits-loBit+1);
|
||||
else if (loBit == 0)
|
||||
return getLowBitsSet(numBits, hiBit+1);
|
||||
return getLowBitsSet(numBits, hiBit-loBit+1).shl(loBit);
|
||||
}
|
||||
|
||||
/// Constructs an APInt value that has the top hiBitsSet bits set.
|
||||
/// @param numBits the bitwidth of the result
|
||||
|
Loading…
Reference in New Issue
Block a user