diff options
author | Alex Lorenz <arphaman@gmail.com> | 2015-08-05 18:52:21 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2015-08-05 18:52:21 +0000 |
commit | 05e3882e81d4d25f52f716d2f6555510e25c6143 (patch) | |
tree | b1fc3bfce2a2588955c7f13993a59ca527082c50 /llvm/lib/CodeGen/MIRParser/MILexer.cpp | |
parent | 124955aade67bb0455a8c0dc1f01d86b265ef277 (diff) | |
download | bcm5719-llvm-05e3882e81d4d25f52f716d2f6555510e25c6143.tar.gz bcm5719-llvm-05e3882e81d4d25f52f716d2f6555510e25c6143.zip |
MIR Serialization: Serialize the typed immediate integer machine operands.
llvm-svn: 244098
Diffstat (limited to 'llvm/lib/CodeGen/MIRParser/MILexer.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MIRParser/MILexer.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MIRParser/MILexer.cpp b/llvm/lib/CodeGen/MIRParser/MILexer.cpp index 13fad33d980..da79e1c070d 100644 --- a/llvm/lib/CodeGen/MIRParser/MILexer.cpp +++ b/llvm/lib/CodeGen/MIRParser/MILexer.cpp @@ -138,6 +138,17 @@ static Cursor lexName( return C; } +static Cursor maybeLexIntegerType(Cursor C, MIToken &Token) { + if (C.peek() != 'i' || !isdigit(C.peek(1))) + return None; + auto Range = C; + C.advance(); // Skip 'i' + while (isdigit(C.peek())) + C.advance(); + Token = MIToken(MIToken::IntegerType, Range.upto(C)); + return C; +} + static MIToken::TokenKind getIdentifierKind(StringRef Identifier) { return StringSwitch<MIToken::TokenKind>(Identifier) .Case("_", MIToken::underscore) @@ -418,6 +429,8 @@ StringRef llvm::lexMIToken( return C.remaining(); } + if (Cursor R = maybeLexIntegerType(C, Token)) + return R.remaining(); if (Cursor R = maybeLexIdentifier(C, Token)) return R.remaining(); if (Cursor R = maybeLexMachineBasicBlock(C, Token, ErrorCallback)) |