aboutsummaryrefslogtreecommitdiff
path: root/lib/Lex/PTHLexer.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-01-21 07:06:08 +0000
committerChris Lattner <sabre@nondot.org>2009-01-21 07:06:08 +0000
commit2f6572bafa2ee53e1ac288934aae8a3129ec03b1 (patch)
tree597263c2146868fc714d989662fd9b1d4eddaa90 /lib/Lex/PTHLexer.cpp
parent0964a06d5cc1dc36ac5f8c89ba47ec0a47c08bb1 (diff)
minor cleanups: now that tokens are 4-byte aligned in a PTH
file, just load them directly as ints. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62668 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Lex/PTHLexer.cpp')
-rw-r--r--lib/Lex/PTHLexer.cpp28
1 files changed, 6 insertions, 22 deletions
diff --git a/lib/Lex/PTHLexer.cpp b/lib/Lex/PTHLexer.cpp
index 494cea50e6..6e449e4ba9 100644
--- a/lib/Lex/PTHLexer.cpp
+++ b/lib/Lex/PTHLexer.cpp
@@ -50,22 +50,6 @@ static inline uint16_t Read16(const unsigned char *&Data) {
return V;
}
-static inline uint32_t Read24(const unsigned char *&Data) {
-// Targets that directly support unaligned little-endian 16-bit loads can just
-// use them.
-#if defined(__i386__) || defined(__x86_64__)
- uint32_t V = ((uint16_t*)Data)[0] |
- ((uint32_t)Data[2] << 16);
-#else
- uint32_t V = ((uint32_t)Data[0] << 0) |
- ((uint32_t)Data[1] << 8) |
- ((uint32_t)Data[2] << 16);
-#endif
-
- Data += 3;
- return V;
-}
-
static inline uint32_t Read32(const unsigned char *&Data) {
// Targets that directly support unaligned little-endian 32-bit loads can just
// use them.
@@ -104,18 +88,18 @@ LexNextToken:
//===--------------------------------------==//
// Shadow CurPtr into an automatic variable.
- const unsigned char *CurPtrShadow = CurPtr;
+ const unsigned *CurPtrShadow = (const unsigned *)CurPtr;
// Read in the data for the token.
- unsigned Word0 = Read32(CurPtrShadow);
- uint32_t IdentifierID = Read32(CurPtrShadow);
- uint32_t FileOffset = Read32(CurPtrShadow);
+ unsigned Word0 = CurPtrShadow[0];
+ unsigned IdentifierID = CurPtrShadow[1];
+ unsigned FileOffset = CurPtrShadow[2];
tok::TokenKind TKind = (tok::TokenKind) (Word0 & 0xFF);
Token::TokenFlags TFlags = (Token::TokenFlags) ((Word0 >> 8) & 0xFF);
- uint32_t Len = Word0 >> 16;
+ unsigned Len = Word0 >> 16;
- CurPtr = CurPtrShadow;
+ CurPtr = (const unsigned char*)(CurPtrShadow+3);
//===--------------------------------------==//
// Construct the token itself.