X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FTarget%2FARM%2FAsmParser%2FARMAsmParser.cpp;h=b41b71d4b0a842d9299b24207aa5af7973771fe0;hb=d68fd9c79eeb30980c18dc3f74b2da839bb259f3;hp=818630b981c2068b51f8d5e6cf601aca76cfff30;hpb=2a301704ea76535f0485d5c3b75664b323249bdb;p=oota-llvm.git diff --git a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp index 818630b981c..b41b71d4b0a 100644 --- a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -387,8 +387,8 @@ int ARMAsmParser::TryParseRegister() { // FIXME: Validate register for the current architecture; we have to do // validation later, so maybe there is no need for this here. - int RegNum = MatchRegisterName(Tok.getString()); - if (RegNum == -1) + unsigned RegNum = MatchRegisterName(Tok.getString()); + if (RegNum == 0) return -1; Parser.Lex(); // Eat identifier token. return RegNum; @@ -434,13 +434,12 @@ ARMOperand *ARMAsmParser::ParseRegisterList() { Error(RegLoc, "register expected"); return 0; } - int RegNum = MatchRegisterName(RegTok.getString()); + int RegNum = TryParseRegister(); if (RegNum == -1) { Error(RegLoc, "register expected"); return 0; } - Parser.Lex(); // Eat identifier token. unsigned RegList = 1 << RegNum; int HighRegNum = RegNum; @@ -454,7 +453,7 @@ ARMOperand *ARMAsmParser::ParseRegisterList() { Error(RegLoc, "register expected"); return 0; } - int RegNum = MatchRegisterName(RegTok.getString()); + int RegNum = TryParseRegister(); if (RegNum == -1) { Error(RegLoc, "register expected"); return 0; @@ -466,8 +465,6 @@ ARMOperand *ARMAsmParser::ParseRegisterList() { Warning(RegLoc, "register not in ascending order in register list"); RegList |= 1 << RegNum; HighRegNum = RegNum; - - Parser.Lex(); // Eat identifier token. } const AsmToken &RCurlyTok = Parser.getTok(); if (RCurlyTok.isNot(AsmToken::RCurly)) {