diff options
Diffstat (limited to 'llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp')
-rw-r--r-- | llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp b/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp index f39be036d21f..0a72f29659b0 100644 --- a/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp +++ b/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp @@ -55,9 +55,10 @@ class VEAsmParser : public MCTargetAsmParser { OperandVector &Operands, MCStreamer &Out, uint64_t &ErrorInfo, bool MatchingInlineAsm) override; - bool ParseRegister(unsigned &RegNo, SMLoc &StartLoc, SMLoc &EndLoc) override; + bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc, + SMLoc &EndLoc) override; int parseRegisterName(unsigned (*matchFn)(StringRef)); - OperandMatchResultTy tryParseRegister(unsigned &RegNo, SMLoc &StartLoc, + OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc, SMLoc &EndLoc) override; bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name, SMLoc NameLoc, OperandVector &Operands) override; @@ -796,7 +797,7 @@ bool VEAsmParser::MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode, llvm_unreachable("Implement any new match types added!"); } -bool VEAsmParser::ParseRegister(unsigned &RegNo, SMLoc &StartLoc, +bool VEAsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc, SMLoc &EndLoc) { if (tryParseRegister(RegNo, StartLoc, EndLoc) != MatchOperand_Success) return Error(StartLoc, "invalid register name"); @@ -827,8 +828,9 @@ static unsigned MatchRegisterName(StringRef Name); /// \note Generated by TableGen. static unsigned MatchRegisterAltName(StringRef Name); -OperandMatchResultTy -VEAsmParser::tryParseRegister(unsigned &RegNo, SMLoc &StartLoc, SMLoc &EndLoc) { +OperandMatchResultTy VEAsmParser::tryParseRegister(MCRegister &RegNo, + SMLoc &StartLoc, + SMLoc &EndLoc) { const AsmToken Tok = Parser.getTok(); StartLoc = Tok.getLoc(); EndLoc = Tok.getEndLoc(); @@ -1246,11 +1248,11 @@ OperandMatchResultTy VEAsmParser::parseMEMOperand(OperandVector &Operands) { } const MCExpr *IndexValue = nullptr; - unsigned IndexReg = 0; + MCRegister IndexReg; switch (getLexer().getKind()) { default: - if (ParseRegister(IndexReg, S, E)) + if (parseRegister(IndexReg, S, E)) return MatchOperand_ParseFail; break; @@ -1283,8 +1285,8 @@ OperandMatchResultTy VEAsmParser::parseMEMOperand(OperandVector &Operands) { break; } - unsigned BaseReg = 0; - if (ParseRegister(BaseReg, S, E)) + MCRegister BaseReg; + if (parseRegister(BaseReg, S, E)) return MatchOperand_ParseFail; if (!Parser.getTok().is(AsmToken::RParen)) @@ -1313,7 +1315,7 @@ OperandMatchResultTy VEAsmParser::parseMEMAsOperand(OperandVector &Operands) { // (base) // base - unsigned BaseReg = VE::NoRegister; + MCRegister BaseReg; std::unique_ptr<VEOperand> Offset; switch (getLexer().getKind()) { default: @@ -1332,7 +1334,7 @@ OperandMatchResultTy VEAsmParser::parseMEMAsOperand(OperandVector &Operands) { } case AsmToken::Percent: - if (ParseRegister(BaseReg, S, E)) + if (parseRegister(BaseReg, S, E)) return MatchOperand_NoMatch; Offset = VEOperand::CreateImm(MCConstantExpr::create(0, getContext()), S, E); @@ -1365,13 +1367,13 @@ OperandMatchResultTy VEAsmParser::parseMEMAsOperand(OperandVector &Operands) { switch (getLexer().getKind()) { default: - if (ParseRegister(BaseReg, S, E)) + if (parseRegister(BaseReg, S, E)) return MatchOperand_ParseFail; break; case AsmToken::Comma: Parser.Lex(); // Eat the , - if (ParseRegister(BaseReg, S, E)) + if (parseRegister(BaseReg, S, E)) return MatchOperand_ParseFail; break; @@ -1448,7 +1450,7 @@ OperandMatchResultTy VEAsmParser::parseOperand(OperandVector &Operands, const AsmToken Tok1 = Parser.getTok(); Parser.Lex(); // Eat the '('. - unsigned RegNo1; + MCRegister RegNo1; SMLoc S1, E1; if (tryParseRegister(RegNo1, S1, E1) != MatchOperand_Success) { getLexer().UnLex(Tok1); @@ -1459,7 +1461,7 @@ OperandMatchResultTy VEAsmParser::parseOperand(OperandVector &Operands, return MatchOperand_ParseFail; Parser.Lex(); // Eat the ','. - unsigned RegNo2; + MCRegister RegNo2; SMLoc S2, E2; if (tryParseRegister(RegNo2, S2, E2) != MatchOperand_Success) return MatchOperand_ParseFail; @@ -1524,12 +1526,12 @@ VEAsmParser::parseVEAsmOperand(std::unique_ptr<VEOperand> &Op) { default: break; - case AsmToken::Percent: - unsigned RegNo; + case AsmToken::Percent: { + MCRegister RegNo; if (tryParseRegister(RegNo, S, E) == MatchOperand_Success) Op = VEOperand::CreateReg(RegNo, S, E); break; - + } case AsmToken::Minus: case AsmToken::Integer: case AsmToken::Dot: |