forked from OSchip/llvm-project
parent
3543caacd3
commit
84e376f669
|
@ -79,6 +79,8 @@ public:
|
||||||
return (NextChar-FirstChar)*8 + (32-BitsInCurWord);
|
return (NextChar-FirstChar)*8 + (32-BitsInCurWord);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// GetAbbrevIDWidth - Return the number of bits used to encode an abbrev #.
|
||||||
|
unsigned GetAbbrevIDWidth() const { return CurCodeSize; }
|
||||||
|
|
||||||
uint32_t Read(unsigned NumBits) {
|
uint32_t Read(unsigned NumBits) {
|
||||||
// If the field is fully contained by CurWord, return it quickly.
|
// If the field is fully contained by CurWord, return it quickly.
|
||||||
|
@ -205,7 +207,7 @@ public:
|
||||||
|
|
||||||
/// EnterSubBlock - Having read the ENTER_SUBBLOCK abbrevid, read and enter
|
/// EnterSubBlock - Having read the ENTER_SUBBLOCK abbrevid, read and enter
|
||||||
/// the block, returning the BlockID of the block we just entered.
|
/// the block, returning the BlockID of the block we just entered.
|
||||||
bool EnterSubBlock() {
|
bool EnterSubBlock(unsigned *NumWordsP = 0) {
|
||||||
BlockScope.push_back(Block(CurCodeSize));
|
BlockScope.push_back(Block(CurCodeSize));
|
||||||
BlockScope.back().PrevAbbrevs.swap(CurAbbrevs);
|
BlockScope.back().PrevAbbrevs.swap(CurAbbrevs);
|
||||||
|
|
||||||
|
@ -213,6 +215,7 @@ public:
|
||||||
CurCodeSize = ReadVBR(bitc::CodeLenWidth);
|
CurCodeSize = ReadVBR(bitc::CodeLenWidth);
|
||||||
SkipToWord();
|
SkipToWord();
|
||||||
unsigned NumWords = Read(bitc::BlockSizeWidth);
|
unsigned NumWords = Read(bitc::BlockSizeWidth);
|
||||||
|
if (NumWordsP) *NumWordsP = NumWords;
|
||||||
|
|
||||||
// Validate that this block is sane.
|
// Validate that this block is sane.
|
||||||
if (CurCodeSize == 0 || AtEndOfStream() || NextChar+NumWords*4 > LastChar)
|
if (CurCodeSize == 0 || AtEndOfStream() || NextChar+NumWords*4 > LastChar)
|
||||||
|
|
|
@ -92,7 +92,7 @@ namespace bitc {
|
||||||
|
|
||||||
// The constants block (CONSTANTS_BLOCK_ID) describes emission for each
|
// The constants block (CONSTANTS_BLOCK_ID) describes emission for each
|
||||||
// constant and maintains an implicit current type value.
|
// constant and maintains an implicit current type value.
|
||||||
enum ConstantsSymtabCodes {
|
enum ConstantsCodes {
|
||||||
CST_CODE_SETTYPE = 1, // SETTYPE: [typeid]
|
CST_CODE_SETTYPE = 1, // SETTYPE: [typeid]
|
||||||
CST_CODE_NULL = 2, // NULL
|
CST_CODE_NULL = 2, // NULL
|
||||||
CST_CODE_UNDEF = 3, // UNDEF
|
CST_CODE_UNDEF = 3, // UNDEF
|
||||||
|
|
Loading…
Reference in New Issue