aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp')
-rw-r--r--llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp38
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: