From 2bbb703e4f84c68a9603838c32eba7423ed54b71 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 1 May 2007 05:51:32 +0000 Subject: [PATCH] several bitfixes to JumpToBit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36616 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Bitcode/BitstreamReader.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/include/llvm/Bitcode/BitstreamReader.h b/include/llvm/Bitcode/BitstreamReader.h index 634bc738dfd..8d70f1f7133 100644 --- a/include/llvm/Bitcode/BitstreamReader.h +++ b/include/llvm/Bitcode/BitstreamReader.h @@ -93,16 +93,19 @@ public: /// JumpToBit - Reset the stream to the specified bit number. void JumpToBit(uint64_t BitNo) { - unsigned WordNo = BitNo/32; + unsigned ByteNo = (BitNo/8) & ~3; unsigned WordBitNo = BitNo & 31; - assert(WordNo < (unsigned)(LastChar-FirstChar) && "Invalid location"); + assert(ByteNo < (unsigned)(LastChar-FirstChar) && "Invalid location"); // Move the cursor to the right word. - NextChar = FirstChar+WordNo; + NextChar = FirstChar+ByteNo; BitsInCurWord = 0; // Skip over any bits that are already consumed. - if (WordBitNo) Read(WordBitNo); + if (WordBitNo) { + NextChar -= 4; + Read(WordBitNo); + } } /// GetAbbrevIDWidth - Return the number of bits used to encode an abbrev #.