[llvm] a479be0 - [MC] Change tryParseRegister to return ParseStatus (NFC)
Sergei Barannikov via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 6 00:28:37 PDT 2023
Author: Sergei Barannikov
Date: 2023-09-06T10:28:12+03:00
New Revision: a479be0f39a3301e9ca634d37cf6454b6d3865c6
URL: https://github.com/llvm/llvm-project/commit/a479be0f39a3301e9ca634d37cf6454b6d3865c6
DIFF: https://github.com/llvm/llvm-project/commit/a479be0f39a3301e9ca634d37cf6454b6d3865c6.diff
LOG: [MC] Change tryParseRegister to return ParseStatus (NFC)
This finishes the work of replacing OperandMatchResultTy with
ParseStatus, started in D154101.
As a drive-by change, rename some RegNo variables to just Reg
(a leftover from the days when RegNo had 'unsigned' type).
Added:
Modified:
llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h
llvm/lib/MC/MCParser/MasmParser.cpp
llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp
llvm/lib/Target/BPF/AsmParser/BPFAsmParser.cpp
llvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp
llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp
llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
llvm/lib/Target/M68k/AsmParser/M68kAsmParser.cpp
llvm/lib/Target/MSP430/AsmParser/MSP430AsmParser.cpp
llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp
llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
llvm/lib/Target/Xtensa/AsmParser/XtensaAsmParser.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h b/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h
index 1d87f0131efcb06..fe905f2c3ba5fe0 100644
--- a/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h
+++ b/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h
@@ -154,10 +154,12 @@ class ParseStatus {
constexpr bool isNoMatch() const { return Status == StatusTy::NoMatch; }
// Allow implicit conversions to / from OperandMatchResultTy.
+ LLVM_DEPRECATED("Migrate to ParseStatus", "")
constexpr ParseStatus(OperandMatchResultTy R)
: Status(R == MatchOperand_Success ? Success
: R == MatchOperand_ParseFail ? Failure
: NoMatch) {}
+ LLVM_DEPRECATED("Migrate to ParseStatus", "")
constexpr operator OperandMatchResultTy() const {
return isSuccess() ? MatchOperand_Success
: isFailure() ? MatchOperand_ParseFail
@@ -421,8 +423,8 @@ class MCTargetAsmParser : public MCAsmParserExtension {
/// Check whether a register specification can be parsed at the current
/// location, without failing the entire parse if it can't. Must not consume
/// tokens if the parse fails.
- virtual OperandMatchResultTy
- tryParseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) = 0;
+ virtual ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) = 0;
/// ParseInstruction - Parse one assembly instruction.
///
diff --git a/llvm/lib/MC/MCParser/MasmParser.cpp b/llvm/lib/MC/MCParser/MasmParser.cpp
index 307256ffaf456b1..8960e739365c6cf 100644
--- a/llvm/lib/MC/MCParser/MasmParser.cpp
+++ b/llvm/lib/MC/MCParser/MasmParser.cpp
@@ -6234,8 +6234,8 @@ bool MasmParser::parseDirectiveIfdef(SMLoc DirectiveLoc, bool expect_defined) {
bool is_defined = false;
MCRegister Reg;
SMLoc StartLoc, EndLoc;
- is_defined = (getTargetParser().tryParseRegister(Reg, StartLoc, EndLoc) ==
- MatchOperand_Success);
+ is_defined =
+ getTargetParser().tryParseRegister(Reg, StartLoc, EndLoc).isSuccess();
if (!is_defined) {
StringRef Name;
if (check(parseIdentifier(Name), "expected identifier after 'ifdef'") ||
@@ -6354,8 +6354,8 @@ bool MasmParser::parseDirectiveElseIfdef(SMLoc DirectiveLoc,
bool is_defined = false;
MCRegister Reg;
SMLoc StartLoc, EndLoc;
- is_defined = (getTargetParser().tryParseRegister(Reg, StartLoc, EndLoc) ==
- MatchOperand_Success);
+ is_defined =
+ getTargetParser().tryParseRegister(Reg, StartLoc, EndLoc).isSuccess();
if (!is_defined) {
StringRef Name;
if (check(parseIdentifier(Name),
@@ -6526,8 +6526,8 @@ bool MasmParser::parseDirectiveErrorIfdef(SMLoc DirectiveLoc,
bool IsDefined = false;
MCRegister Reg;
SMLoc StartLoc, EndLoc;
- IsDefined = (getTargetParser().tryParseRegister(Reg, StartLoc, EndLoc) ==
- MatchOperand_Success);
+ IsDefined =
+ getTargetParser().tryParseRegister(Reg, StartLoc, EndLoc).isSuccess();
if (!IsDefined) {
StringRef Name;
if (check(parseIdentifier(Name), "expected identifier after '.errdef'"))
diff --git a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
index d81c2ee30ce8a0a..77180613adef68b 100644
--- a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+++ b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
@@ -318,10 +318,9 @@ class AArch64AsmParser : public MCTargetAsmParser {
const MCParsedAsmOperand &Op2) const override;
bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc, OperandVector &Operands) override;
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
bool ParseDirective(AsmToken DirectiveID) override;
unsigned validateTargetOperandClass(MCParsedAsmOperand &Op,
unsigned Kind) override;
@@ -2839,16 +2838,15 @@ static unsigned matchMatrixRegName(StringRef Name) {
.Default(0);
}
-bool AArch64AsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool AArch64AsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
- return tryParseRegister(RegNo, StartLoc, EndLoc) != MatchOperand_Success;
+ return !tryParseRegister(Reg, StartLoc, EndLoc).isSuccess();
}
-OperandMatchResultTy AArch64AsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
+ParseStatus AArch64AsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
StartLoc = getLoc();
- auto Res = tryParseScalarRegister(RegNo);
+ ParseStatus Res = tryParseScalarRegister(Reg);
EndLoc = SMLoc::getFromPointer(getLoc().getPointer() - 1);
return Res;
}
diff --git a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
index 15b6fc2ae9cdf26..bf741d77e0f2056 100644
--- a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+++ b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
@@ -1495,10 +1495,9 @@ class AMDGPUAsmParser : public MCTargetAsmParser {
std::unique_ptr<AMDGPUOperand> parseRegister(bool RestoreOnFailure = false);
bool ParseRegister(MCRegister &RegNo, SMLoc &StartLoc, SMLoc &EndLoc,
bool RestoreOnFailure);
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
unsigned checkTargetMatchPredicate(MCInst &Inst) override;
unsigned validateTargetOperandClass(MCParsedAsmOperand &Op,
unsigned Kind) override;
@@ -2427,23 +2426,21 @@ bool AMDGPUAsmParser::ParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
return false;
}
-bool AMDGPUAsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool AMDGPUAsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
- return ParseRegister(RegNo, StartLoc, EndLoc, /*RestoreOnFailure=*/false);
+ return ParseRegister(Reg, StartLoc, EndLoc, /*RestoreOnFailure=*/false);
}
-OperandMatchResultTy AMDGPUAsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
- bool Result =
- ParseRegister(RegNo, StartLoc, EndLoc, /*RestoreOnFailure=*/true);
+ParseStatus AMDGPUAsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
+ bool Result = ParseRegister(Reg, StartLoc, EndLoc, /*RestoreOnFailure=*/true);
bool PendingErrors = getParser().hasPendingError();
getParser().clearPendingErrors();
if (PendingErrors)
- return MatchOperand_ParseFail;
+ return ParseStatus::Failure;
if (Result)
- return MatchOperand_NoMatch;
- return MatchOperand_Success;
+ return ParseStatus::NoMatch;
+ return ParseStatus::Success;
}
bool AMDGPUAsmParser::AddNextRegisterToList(unsigned &Reg, unsigned &RegWidth,
diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
index ef4c70916eeb5df..590887b765d7f56 100644
--- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+++ b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
@@ -704,10 +704,9 @@ class ARMAsmParser : public MCTargetAsmParser {
}
// Implementation of the MCTargetAsmParser interface:
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc, OperandVector &Operands) override;
bool ParseDirective(AsmToken DirectiveID) override;
@@ -4050,22 +4049,21 @@ static unsigned MatchRegisterName(StringRef Name);
/// }
-bool ARMAsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool ARMAsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
const AsmToken &Tok = getParser().getTok();
StartLoc = Tok.getLoc();
EndLoc = Tok.getEndLoc();
- RegNo = tryParseRegister();
+ Reg = tryParseRegister();
- return (RegNo == (unsigned)-1);
+ return Reg == (unsigned)-1;
}
-OperandMatchResultTy ARMAsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
- if (parseRegister(RegNo, StartLoc, EndLoc))
- return MatchOperand_NoMatch;
- return MatchOperand_Success;
+ParseStatus ARMAsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
+ if (parseRegister(Reg, StartLoc, EndLoc))
+ return ParseStatus::NoMatch;
+ return ParseStatus::Success;
}
/// Try to parse a register name. The token must be an Identifier when called,
diff --git a/llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp b/llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp
index d87a51203734f01..bb9710d13a9d93b 100644
--- a/llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp
+++ b/llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp
@@ -56,10 +56,9 @@ class AVRAsmParser : public MCTargetAsmParser {
uint64_t &ErrorInfo,
bool MatchingInlineAsm) override;
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc, OperandVector &Operands) override;
@@ -590,25 +589,24 @@ ParseStatus AVRAsmParser::parseMemriOperand(OperandVector &Operands) {
return ParseStatus::Success;
}
-bool AVRAsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool AVRAsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
StartLoc = Parser.getTok().getLoc();
- RegNo = parseRegister(/*RestoreOnFailure=*/false);
+ Reg = parseRegister(/*RestoreOnFailure=*/false);
EndLoc = Parser.getTok().getLoc();
- return (RegNo == AVR::NoRegister);
+ return Reg == AVR::NoRegister;
}
-OperandMatchResultTy AVRAsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
+ParseStatus AVRAsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
StartLoc = Parser.getTok().getLoc();
- RegNo = parseRegister(/*RestoreOnFailure=*/true);
+ Reg = parseRegister(/*RestoreOnFailure=*/true);
EndLoc = Parser.getTok().getLoc();
- if (RegNo == AVR::NoRegister)
- return MatchOperand_NoMatch;
- return MatchOperand_Success;
+ if (Reg == AVR::NoRegister)
+ return ParseStatus::NoMatch;
+ return ParseStatus::Success;
}
void AVRAsmParser::eatComma() {
diff --git a/llvm/lib/Target/BPF/AsmParser/BPFAsmParser.cpp b/llvm/lib/Target/BPF/AsmParser/BPFAsmParser.cpp
index f872df00ffee118..e92fc1a999104da 100644
--- a/llvm/lib/Target/BPF/AsmParser/BPFAsmParser.cpp
+++ b/llvm/lib/Target/BPF/AsmParser/BPFAsmParser.cpp
@@ -39,10 +39,9 @@ class BPFAsmParser : public MCTargetAsmParser {
uint64_t &ErrorInfo,
bool MatchingInlineAsm) override;
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reo, SMLoc &StartLoc, SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc, OperandVector &Operands) override;
@@ -338,28 +337,27 @@ bool BPFAsmParser::MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode,
llvm_unreachable("Unknown match type detected!");
}
-bool BPFAsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool BPFAsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
- if (tryParseRegister(RegNo, StartLoc, EndLoc) != MatchOperand_Success)
+ if (!tryParseRegister(Reg, StartLoc, EndLoc).isSuccess())
return Error(StartLoc, "invalid register name");
return false;
}
-OperandMatchResultTy BPFAsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
+ParseStatus BPFAsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
const AsmToken &Tok = getParser().getTok();
StartLoc = Tok.getLoc();
EndLoc = Tok.getEndLoc();
- RegNo = 0;
+ Reg = BPF::NoRegister;
StringRef Name = getLexer().getTok().getIdentifier();
if (!MatchRegisterName(Name)) {
getParser().Lex(); // Eat identifier token.
- return MatchOperand_Success;
+ return ParseStatus::Success;
}
- return MatchOperand_NoMatch;
+ return ParseStatus::NoMatch;
}
ParseStatus BPFAsmParser::parseOperandAsOperator(OperandVector &Operands) {
diff --git a/llvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp b/llvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp
index 19f33f38cbfd369..4711e58bbed6113 100644
--- a/llvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp
+++ b/llvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp
@@ -72,8 +72,7 @@ class CSKYAsmParser : public MCTargetAsmParser {
uint64_t &ErrorInfo,
bool MatchingInlineAsm) override;
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc, OperandVector &Operands) override;
@@ -84,8 +83,8 @@ class CSKYAsmParser : public MCTargetAsmParser {
// possible, compression of the instruction is performed.
void emitToStreamer(MCStreamer &S, const MCInst &Inst);
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
bool processInstruction(MCInst &Inst, SMLoc IDLoc, OperandVector &Operands,
MCStreamer &Out);
@@ -1001,24 +1000,24 @@ bool CSKYAsmParser::processInstruction(MCInst &Inst, SMLoc IDLoc,
// Attempts to match Name as a register (either using the default name or
// alternative ABI names), setting RegNo to the matching register. Upon
// failure, returns true and sets RegNo to 0.
-static bool matchRegisterNameHelper(const MCSubtargetInfo &STI,
- MCRegister &RegNo, StringRef Name) {
- RegNo = MatchRegisterName(Name);
+static bool matchRegisterNameHelper(const MCSubtargetInfo &STI, MCRegister &Reg,
+ StringRef Name) {
+ Reg = MatchRegisterName(Name);
- if (RegNo == CSKY::NoRegister)
- RegNo = MatchRegisterAltName(Name);
+ if (Reg == CSKY::NoRegister)
+ Reg = MatchRegisterAltName(Name);
- return RegNo == CSKY::NoRegister;
+ return Reg == CSKY::NoRegister;
}
-bool CSKYAsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool CSKYAsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
const AsmToken &Tok = getParser().getTok();
StartLoc = Tok.getLoc();
EndLoc = Tok.getEndLoc();
StringRef Name = getLexer().getTok().getIdentifier();
- if (!matchRegisterNameHelper(getSTI(), (MCRegister &)RegNo, Name)) {
+ if (!matchRegisterNameHelper(getSTI(), Reg, Name)) {
getParser().Lex(); // Eat identifier token.
return false;
}
@@ -1035,13 +1034,13 @@ ParseStatus CSKYAsmParser::parseRegister(OperandVector &Operands) {
return ParseStatus::NoMatch;
case AsmToken::Identifier: {
StringRef Name = getLexer().getTok().getIdentifier();
- MCRegister RegNo;
+ MCRegister Reg;
- if (matchRegisterNameHelper(getSTI(), (MCRegister &)RegNo, Name))
+ if (matchRegisterNameHelper(getSTI(), Reg, Name))
return ParseStatus::NoMatch;
getLexer().Lex();
- Operands.push_back(CSKYOperand::createReg(RegNo, S, E));
+ Operands.push_back(CSKYOperand::createReg(Reg, S, E));
return ParseStatus::Success;
}
@@ -1514,20 +1513,19 @@ bool CSKYAsmParser::ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
return false;
}
-OperandMatchResultTy CSKYAsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
+ParseStatus CSKYAsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
const AsmToken &Tok = getParser().getTok();
StartLoc = Tok.getLoc();
EndLoc = Tok.getEndLoc();
StringRef Name = getLexer().getTok().getIdentifier();
- if (matchRegisterNameHelper(getSTI(), (MCRegister &)RegNo, Name))
- return MatchOperand_NoMatch;
+ if (matchRegisterNameHelper(getSTI(), Reg, Name))
+ return ParseStatus::NoMatch;
getParser().Lex(); // Eat identifier token.
- return MatchOperand_Success;
+ return ParseStatus::Success;
}
ParseStatus CSKYAsmParser::parseDirective(AsmToken DirectiveID) {
diff --git a/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp b/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
index ce93715d6c42d4c..fd7d25fa16d1dae 100644
--- a/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
+++ b/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
@@ -115,10 +115,9 @@ class HexagonAsmParser : public MCTargetAsmParser {
bool Error(SMLoc L, const Twine &Msg) { return Parser.Error(L, Msg); }
bool ParseDirectiveFalign(unsigned Size, SMLoc L);
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
bool ParseDirectiveSubsection(SMLoc L);
bool ParseDirectiveComm(bool IsLocal, SMLoc L);
bool RegisterMatchesArch(unsigned MatchNum) const;
@@ -963,14 +962,13 @@ bool HexagonAsmParser::handleNoncontigiousRegister(bool Contigious,
return false;
}
-bool HexagonAsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool HexagonAsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
- return tryParseRegister(RegNo, StartLoc, EndLoc) != MatchOperand_Success;
+ return !tryParseRegister(Reg, StartLoc, EndLoc).isSuccess();
}
-OperandMatchResultTy HexagonAsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
+ParseStatus HexagonAsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
MCAsmLexer &Lexer = getLexer();
StartLoc = getLexer().getLoc();
SmallVector<AsmToken, 5> Lookahead;
@@ -1002,20 +1000,20 @@ OperandMatchResultTy HexagonAsmParser::tryParseRegister(MCRegister &RegNo,
unsigned DotReg = matchRegister(DotSplit.first.lower());
if (DotReg != Hexagon::NoRegister && RegisterMatchesArch(DotReg)) {
if (DotSplit.second.empty()) {
- RegNo = DotReg;
+ Reg = DotReg;
EndLoc = Lexer.getLoc();
if (handleNoncontigiousRegister(!NeededWorkaround, StartLoc))
- return MatchOperand_NoMatch;
- return MatchOperand_Success;
+ return ParseStatus::NoMatch;
+ return ParseStatus::Success;
} else {
- RegNo = DotReg;
+ Reg = DotReg;
size_t First = RawString.find('.');
StringRef DotString (RawString.data() + First, RawString.size() - First);
Lexer.UnLex(AsmToken(AsmToken::Identifier, DotString));
EndLoc = Lexer.getLoc();
if (handleNoncontigiousRegister(!NeededWorkaround, StartLoc))
- return MatchOperand_NoMatch;
- return MatchOperand_Success;
+ return ParseStatus::NoMatch;
+ return ParseStatus::Success;
}
}
std::pair<StringRef, StringRef> ColonSplit = StringRef(FullString).split(':');
@@ -1024,16 +1022,16 @@ OperandMatchResultTy HexagonAsmParser::tryParseRegister(MCRegister &RegNo,
do {
Lexer.UnLex(Lookahead.pop_back_val());
} while (!Lookahead.empty() && !Lexer.is(AsmToken::Colon));
- RegNo = ColonReg;
+ Reg = ColonReg;
EndLoc = Lexer.getLoc();
if (handleNoncontigiousRegister(!NeededWorkaround, StartLoc))
- return MatchOperand_NoMatch;
- return MatchOperand_Success;
+ return ParseStatus::NoMatch;
+ return ParseStatus::Success;
}
while (!Lookahead.empty()) {
Lexer.UnLex(Lookahead.pop_back_val());
}
- return MatchOperand_NoMatch;
+ return ParseStatus::NoMatch;
}
bool HexagonAsmParser::implicitExpressionLocation(OperandVector &Operands) {
diff --git a/llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp b/llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp
index 8be8f9c45809ffc..cf6f7800a4410f8 100644
--- a/llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp
+++ b/llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp
@@ -65,10 +65,9 @@ class LanaiAsmParser : public MCTargetAsmParser {
bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc, OperandVector &Operands) override;
- bool parseRegister(MCRegister &RegNum, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
bool MatchAndEmitInstruction(SMLoc IdLoc, unsigned &Opcode,
OperandVector &Operands, MCStreamer &Out,
@@ -724,17 +723,16 @@ bool LanaiAsmParser::parseRegister(MCRegister &RegNum, SMLoc &StartLoc,
return (Op == nullptr);
}
-OperandMatchResultTy LanaiAsmParser::tryParseRegister(MCRegister &RegNum,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
+ParseStatus LanaiAsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
const AsmToken &Tok = getParser().getTok();
StartLoc = Tok.getLoc();
EndLoc = Tok.getEndLoc();
std::unique_ptr<LanaiOperand> Op = parseRegister(/*RestoreOnFailure=*/true);
if (Op == nullptr)
- return MatchOperand_NoMatch;
- RegNum = Op->getReg();
- return MatchOperand_Success;
+ return ParseStatus::NoMatch;
+ Reg = Op->getReg();
+ return ParseStatus::Success;
}
std::unique_ptr<LanaiOperand> LanaiAsmParser::parseIdentifier() {
diff --git a/llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp b/llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
index 94d530306536fdd..276374afee38087 100644
--- a/llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
+++ b/llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
@@ -43,10 +43,9 @@ class LoongArchAsmParser : public MCTargetAsmParser {
using InstSeq = SmallVector<Inst>;
/// Parse a register as used in CFI directives.
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc, OperandVector &Operands) override;
@@ -549,14 +548,14 @@ static bool matchRegisterNameHelper(MCRegister &RegNo, StringRef Name) {
return RegNo == LoongArch::NoRegister;
}
-bool LoongArchAsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool LoongArchAsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
return Error(getLoc(), "invalid register number");
}
-OperandMatchResultTy LoongArchAsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
+ParseStatus LoongArchAsmParser::tryParseRegister(MCRegister &Reg,
+ SMLoc &StartLoc,
+ SMLoc &EndLoc) {
llvm_unreachable("Unimplemented function.");
}
diff --git a/llvm/lib/Target/M68k/AsmParser/M68kAsmParser.cpp b/llvm/lib/Target/M68k/AsmParser/M68kAsmParser.cpp
index 7a0a033c55ad88f..31e525ad4d79624 100644
--- a/llvm/lib/Target/M68k/AsmParser/M68kAsmParser.cpp
+++ b/llvm/lib/Target/M68k/AsmParser/M68kAsmParser.cpp
@@ -66,10 +66,9 @@ class M68kAsmParser : public MCTargetAsmParser {
unsigned validateTargetOperandClass(MCParsedAsmOperand &Op,
unsigned Kind) override;
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc, OperandVector &Operands) override;
bool MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode,
@@ -704,21 +703,19 @@ ParseStatus M68kAsmParser::parseRegister(MCRegister &RegNo) {
return ParseStatus::Success;
}
-bool M68kAsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool M68kAsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
- auto Result = tryParseRegister(RegNo, StartLoc, EndLoc);
- if (Result != MatchOperand_Success) {
+ ParseStatus Result = tryParseRegister(Reg, StartLoc, EndLoc);
+ if (!Result.isSuccess())
return Error(StartLoc, "expected register");
- }
return false;
}
-OperandMatchResultTy M68kAsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
+ParseStatus M68kAsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
StartLoc = getLexer().getLoc();
- ParseStatus Result = parseRegister(RegNo);
+ ParseStatus Result = parseRegister(Reg);
EndLoc = getLexer().getLoc();
return Result;
}
diff --git a/llvm/lib/Target/MSP430/AsmParser/MSP430AsmParser.cpp b/llvm/lib/Target/MSP430/AsmParser/MSP430AsmParser.cpp
index f2c90f565863508..f3213ee72d9a69a 100644
--- a/llvm/lib/Target/MSP430/AsmParser/MSP430AsmParser.cpp
+++ b/llvm/lib/Target/MSP430/AsmParser/MSP430AsmParser.cpp
@@ -45,10 +45,9 @@ class MSP430AsmParser : public MCTargetAsmParser {
uint64_t &ErrorInfo,
bool MatchingInlineAsm) override;
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc, OperandVector &Operands) override;
@@ -290,30 +289,28 @@ bool MSP430AsmParser::MatchAndEmitInstruction(SMLoc Loc, unsigned &Opcode,
static unsigned MatchRegisterName(StringRef Name);
static unsigned MatchRegisterAltName(StringRef Name);
-bool MSP430AsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool MSP430AsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
- switch (tryParseRegister(RegNo, StartLoc, EndLoc)) {
- case MatchOperand_ParseFail:
+ ParseStatus Res = tryParseRegister(Reg, StartLoc, EndLoc);
+ if (Res.isFailure())
return Error(StartLoc, "invalid register name");
- case MatchOperand_Success:
+ if (Res.isSuccess())
return false;
- case MatchOperand_NoMatch:
+ if (Res.isNoMatch())
return true;
- }
- llvm_unreachable("unknown match result type");
+ llvm_unreachable("unknown parse status");
}
-OperandMatchResultTy MSP430AsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
+ParseStatus MSP430AsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
if (getLexer().getKind() == AsmToken::Identifier) {
auto Name = getLexer().getTok().getIdentifier().lower();
- RegNo = MatchRegisterName(Name);
- if (RegNo == MSP430::NoRegister) {
- RegNo = MatchRegisterAltName(Name);
- if (RegNo == MSP430::NoRegister)
- return MatchOperand_NoMatch;
+ Reg = MatchRegisterName(Name);
+ if (Reg == MSP430::NoRegister) {
+ Reg = MatchRegisterAltName(Name);
+ if (Reg == MSP430::NoRegister)
+ return ParseStatus::NoMatch;
}
AsmToken const &T = getParser().getTok();
@@ -321,10 +318,10 @@ OperandMatchResultTy MSP430AsmParser::tryParseRegister(MCRegister &RegNo,
EndLoc = T.getEndLoc();
getLexer().Lex(); // eat register token
- return MatchOperand_Success;
+ return ParseStatus::Success;
}
- return MatchOperand_ParseFail;
+ return ParseStatus::Failure;
}
bool MSP430AsmParser::parseJccInstruction(ParseInstructionInfo &Info,
diff --git a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
index b4f99788410bdb5..60075c819b29c6c 100644
--- a/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
+++ b/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
@@ -179,10 +179,9 @@ class MipsAsmParser : public MCTargetAsmParser {
bool MatchingInlineAsm) override;
/// Parse a register as used in CFI directives
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
bool parseParenSuffix(StringRef Name, OperandVector &Operands);
@@ -6385,14 +6384,13 @@ bool MipsAsmParser::parseOperand(OperandVector &Operands, StringRef Mnemonic) {
return true;
}
-bool MipsAsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool MipsAsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
- return tryParseRegister(RegNo, StartLoc, EndLoc) != MatchOperand_Success;
+ return !tryParseRegister(Reg, StartLoc, EndLoc).isSuccess();
}
-OperandMatchResultTy MipsAsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
+ParseStatus MipsAsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
SmallVector<std::unique_ptr<MCParsedAsmOperand>, 1> Operands;
ParseStatus Res = parseAnyRegister(Operands);
if (Res.isSuccess()) {
@@ -6407,15 +6405,14 @@ OperandMatchResultTy MipsAsmParser::tryParseRegister(MCRegister &RegNo,
// register is a parse error.
if (Operand.isGPRAsmReg()) {
// Resolve to GPR32 or GPR64 appropriately.
- RegNo = isGP64bit() ? Operand.getGPR64Reg() : Operand.getGPR32Reg();
+ Reg = isGP64bit() ? Operand.getGPR64Reg() : Operand.getGPR32Reg();
}
- return (RegNo == (unsigned)-1) ? MatchOperand_NoMatch
- : MatchOperand_Success;
+ return (Reg == (unsigned)-1) ? ParseStatus::NoMatch : ParseStatus::Success;
}
assert(Operands.size() == 0);
- return (RegNo == (unsigned)-1) ? MatchOperand_NoMatch : MatchOperand_Success;
+ return (Reg == (unsigned)-1) ? ParseStatus::NoMatch : ParseStatus::Success;
}
bool MipsAsmParser::parseMemOffset(const MCExpr *&Res, bool isParenExpr) {
diff --git a/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp b/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
index 4f93cdaaa137646..ed52b9a9cf27b7b 100644
--- a/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
+++ b/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
@@ -105,10 +105,9 @@ class PPCAsmParser : public MCTargetAsmParser {
bool MatchRegisterName(MCRegister &RegNo, int64_t &IntVal);
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
const MCExpr *ExtractModifierFromExpr(const MCExpr *E,
PPCMCExpr::VariantKind &Variant);
@@ -1320,24 +1319,23 @@ bool PPCAsmParser::MatchRegisterName(MCRegister &RegNo, int64_t &IntVal) {
return false;
}
-bool PPCAsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool PPCAsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
- if (tryParseRegister(RegNo, StartLoc, EndLoc) != MatchOperand_Success)
+ if (!tryParseRegister(Reg, StartLoc, EndLoc).isSuccess())
return TokError("invalid register name");
return false;
}
-OperandMatchResultTy PPCAsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
+ParseStatus PPCAsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
const AsmToken &Tok = getParser().getTok();
StartLoc = Tok.getLoc();
EndLoc = Tok.getEndLoc();
- RegNo = 0;
+ Reg = PPC::NoRegister;
int64_t IntVal;
- if (MatchRegisterName(RegNo, IntVal))
- return MatchOperand_NoMatch;
- return MatchOperand_Success;
+ if (MatchRegisterName(Reg, IntVal))
+ return ParseStatus::NoMatch;
+ return ParseStatus::Success;
}
/// Extract \code @l/@ha \endcode modifier from expression. Recursively scan
diff --git a/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp b/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
index 82a483660d84bde..7d8d82e381313bf 100644
--- a/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+++ b/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
@@ -108,10 +108,9 @@ class RISCVAsmParser : public MCTargetAsmParser {
uint64_t &ErrorInfo,
bool MatchingInlineAsm) override;
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc, OperandVector &Operands) override;
@@ -1574,27 +1573,26 @@ static MCRegister matchRegisterNameHelper(bool IsRVE, StringRef Name) {
return Reg;
}
-bool RISCVAsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool RISCVAsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
- if (tryParseRegister(RegNo, StartLoc, EndLoc) != MatchOperand_Success)
+ if (!tryParseRegister(Reg, StartLoc, EndLoc).isSuccess())
return Error(StartLoc, "invalid register name");
return false;
}
-OperandMatchResultTy RISCVAsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
+ParseStatus RISCVAsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
const AsmToken &Tok = getParser().getTok();
StartLoc = Tok.getLoc();
EndLoc = Tok.getEndLoc();
StringRef Name = getLexer().getTok().getIdentifier();
- RegNo = matchRegisterNameHelper(isRVE(), Name);
- if (!RegNo)
- return MatchOperand_NoMatch;
+ Reg = matchRegisterNameHelper(isRVE(), Name);
+ if (!Reg)
+ return ParseStatus::NoMatch;
getParser().Lex(); // Eat identifier token.
- return MatchOperand_Success;
+ return ParseStatus::Success;
}
ParseStatus RISCVAsmParser::parseRegister(OperandVector &Operands,
diff --git a/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp b/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
index 6c48cb68d2f4c49..c874233602b9b41 100644
--- a/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
+++ b/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
@@ -73,10 +73,9 @@ class SparcAsmParser : public MCTargetAsmParser {
OperandVector &Operands, MCStreamer &Out,
uint64_t &ErrorInfo,
bool MatchingInlineAsm) override;
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc, OperandVector &Operands) override;
ParseStatus parseDirective(AsmToken DirectiveID) override;
@@ -801,31 +800,30 @@ bool SparcAsmParser::MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode,
llvm_unreachable("Implement any new match types added!");
}
-bool SparcAsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool SparcAsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
- if (tryParseRegister(RegNo, StartLoc, EndLoc) != MatchOperand_Success)
+ if (!tryParseRegister(Reg, StartLoc, EndLoc).isSuccess())
return Error(StartLoc, "invalid register name");
return false;
}
-OperandMatchResultTy SparcAsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
+ParseStatus SparcAsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
const AsmToken &Tok = Parser.getTok();
StartLoc = Tok.getLoc();
EndLoc = Tok.getEndLoc();
- RegNo = 0;
+ Reg = Sparc::NoRegister;
if (getLexer().getKind() != AsmToken::Percent)
- return MatchOperand_NoMatch;
+ return ParseStatus::NoMatch;
Parser.Lex();
unsigned regKind = SparcOperand::rk_None;
- if (matchRegisterName(Tok, RegNo, regKind)) {
+ if (matchRegisterName(Tok, Reg, regKind)) {
Parser.Lex();
- return MatchOperand_Success;
+ return ParseStatus::Success;
}
getLexer().UnLex(Tok);
- return MatchOperand_NoMatch;
+ return ParseStatus::NoMatch;
}
static void applyMnemonicAliases(StringRef &Mnemonic,
diff --git a/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp b/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
index 846db8f6169721d..94d29b4df51bbea 100644
--- a/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
+++ b/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
@@ -493,12 +493,11 @@ class SystemZAsmParser : public MCTargetAsmParser {
// Override MCTargetAsmParser.
ParseStatus parseDirective(AsmToken DirectiveID) override;
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
bool ParseRegister(MCRegister &RegNo, SMLoc &StartLoc, SMLoc &EndLoc,
bool RestoreOnFailure);
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc, OperandVector &Operands) override;
bool MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode,
@@ -1374,23 +1373,21 @@ bool SystemZAsmParser::ParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
return false;
}
-bool SystemZAsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool SystemZAsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
- return ParseRegister(RegNo, StartLoc, EndLoc, /*RestoreOnFailure=*/false);
+ return ParseRegister(Reg, StartLoc, EndLoc, /*RestoreOnFailure=*/false);
}
-OperandMatchResultTy SystemZAsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
- bool Result =
- ParseRegister(RegNo, StartLoc, EndLoc, /*RestoreOnFailure=*/true);
+ParseStatus SystemZAsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
+ bool Result = ParseRegister(Reg, StartLoc, EndLoc, /*RestoreOnFailure=*/true);
bool PendingErrors = getParser().hasPendingError();
getParser().clearPendingErrors();
if (PendingErrors)
- return MatchOperand_ParseFail;
+ return ParseStatus::Failure;
if (Result)
- return MatchOperand_NoMatch;
- return MatchOperand_Success;
+ return ParseStatus::NoMatch;
+ return ParseStatus::Success;
}
bool SystemZAsmParser::ParseInstruction(ParseInstructionInfo &Info,
diff --git a/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp b/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp
index d502722a54e126d..19dd6c83b750c3b 100644
--- a/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp
+++ b/llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp
@@ -55,11 +55,10 @@ class VEAsmParser : public MCTargetAsmParser {
OperandVector &Operands, MCStreamer &Out,
uint64_t &ErrorInfo,
bool MatchingInlineAsm) override;
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
int parseRegisterName(unsigned (*matchFn)(StringRef));
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc, OperandVector &Operands) override;
ParseStatus parseDirective(AsmToken DirectiveID) override;
@@ -797,9 +796,9 @@ bool VEAsmParser::MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode,
llvm_unreachable("Implement any new match types added!");
}
-bool VEAsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool VEAsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
- if (tryParseRegister(RegNo, StartLoc, EndLoc) != MatchOperand_Success)
+ if (!tryParseRegister(Reg, StartLoc, EndLoc).isSuccess())
return Error(StartLoc, "invalid register name");
return false;
}
@@ -828,28 +827,27 @@ static unsigned MatchRegisterName(StringRef Name);
/// \note Generated by TableGen.
static unsigned MatchRegisterAltName(StringRef Name);
-OperandMatchResultTy VEAsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
+ParseStatus VEAsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
const AsmToken Tok = Parser.getTok();
StartLoc = Tok.getLoc();
EndLoc = Tok.getEndLoc();
- RegNo = 0;
+ Reg = VE::NoRegister;
if (getLexer().getKind() != AsmToken::Percent)
- return MatchOperand_NoMatch;
+ return ParseStatus::NoMatch;
Parser.Lex();
- RegNo = parseRegisterName(&MatchRegisterName);
- if (RegNo == VE::NoRegister)
- RegNo = parseRegisterName(&MatchRegisterAltName);
+ Reg = parseRegisterName(&MatchRegisterName);
+ if (Reg == VE::NoRegister)
+ Reg = parseRegisterName(&MatchRegisterAltName);
- if (RegNo != VE::NoRegister) {
+ if (Reg != VE::NoRegister) {
Parser.Lex();
- return MatchOperand_Success;
+ return ParseStatus::Success;
}
getLexer().UnLex(Tok);
- return MatchOperand_NoMatch;
+ return ParseStatus::NoMatch;
}
static StringRef parseCC(StringRef Name, unsigned Prefix, unsigned Suffix,
@@ -1450,9 +1448,9 @@ ParseStatus VEAsmParser::parseOperand(OperandVector &Operands,
const AsmToken Tok1 = Parser.getTok();
Parser.Lex(); // Eat the '('.
- MCRegister RegNo1;
+ MCRegister Reg1;
SMLoc S1, E1;
- if (tryParseRegister(RegNo1, S1, E1) != MatchOperand_Success) {
+ if (!tryParseRegister(Reg1, S1, E1).isSuccess()) {
getLexer().UnLex(Tok1);
return ParseStatus::NoMatch;
}
@@ -1461,17 +1459,17 @@ ParseStatus VEAsmParser::parseOperand(OperandVector &Operands,
return ParseStatus::Failure;
Parser.Lex(); // Eat the ','.
- MCRegister RegNo2;
+ MCRegister Reg2;
SMLoc S2, E2;
- if (tryParseRegister(RegNo2, S2, E2) != MatchOperand_Success)
+ if (!tryParseRegister(Reg2, S2, E2).isSuccess())
return ParseStatus::Failure;
if (!Parser.getTok().is(AsmToken::RParen))
return ParseStatus::Failure;
Operands.push_back(VEOperand::CreateToken(Tok1.getString(), Tok1.getLoc()));
- Operands.push_back(VEOperand::CreateReg(RegNo1, S1, E1));
- Operands.push_back(VEOperand::CreateReg(RegNo2, S2, E2));
+ Operands.push_back(VEOperand::CreateReg(Reg1, S1, E1));
+ Operands.push_back(VEOperand::CreateReg(Reg2, S2, E2));
Operands.push_back(VEOperand::CreateToken(Parser.getTok().getString(),
Parser.getTok().getLoc()));
Parser.Lex(); // Eat the ')'.
@@ -1526,9 +1524,9 @@ ParseStatus VEAsmParser::parseVEAsmOperand(std::unique_ptr<VEOperand> &Op) {
break;
case AsmToken::Percent: {
- MCRegister RegNo;
- if (tryParseRegister(RegNo, S, E) == MatchOperand_Success)
- Op = VEOperand::CreateReg(RegNo, S, E);
+ MCRegister Reg;
+ if (tryParseRegister(Reg, S, E).isSuccess())
+ Op = VEOperand::CreateReg(Reg, S, E);
break;
}
case AsmToken::Minus:
diff --git a/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp b/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
index 1e2d3888fe1c158..9f6b9d8ef18fda6 100644
--- a/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
+++ b/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
@@ -272,13 +272,11 @@ class WebAssemblyAsmParser final : public MCTargetAsmParser {
#include "WebAssemblyGenAsmMatcher.inc"
// TODO: This is required to be implemented, but appears unused.
- bool parseRegister(MCRegister & /*RegNo*/, SMLoc & /*StartLoc*/,
- SMLoc & /*EndLoc*/) override {
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override {
llvm_unreachable("parseRegister is not implemented.");
}
- OperandMatchResultTy tryParseRegister(MCRegister & /*RegNo*/,
- SMLoc & /*StartLoc*/,
- SMLoc & /*EndLoc*/) override {
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override {
llvm_unreachable("tryParseRegister is not implemented.");
}
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
index 11cfe3cba751df4..a367fa1ff74396b 100644
--- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -1272,10 +1272,9 @@ class X86AsmParser : public MCTargetAsmParser {
setAvailableFeatures(ComputeAvailableFeatures(getSTI().getFeatureBits()));
}
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override;
bool parsePrimaryExpr(const MCExpr *&Res, SMLoc &EndLoc) override;
@@ -1576,23 +1575,21 @@ bool X86AsmParser::ParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
return false;
}
-bool X86AsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool X86AsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
- return ParseRegister(RegNo, StartLoc, EndLoc, /*RestoreOnFailure=*/false);
+ return ParseRegister(Reg, StartLoc, EndLoc, /*RestoreOnFailure=*/false);
}
-OperandMatchResultTy X86AsmParser::tryParseRegister(MCRegister &RegNo,
- SMLoc &StartLoc,
- SMLoc &EndLoc) {
- bool Result =
- ParseRegister(RegNo, StartLoc, EndLoc, /*RestoreOnFailure=*/true);
+ParseStatus X86AsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) {
+ bool Result = ParseRegister(Reg, StartLoc, EndLoc, /*RestoreOnFailure=*/true);
bool PendingErrors = getParser().hasPendingError();
getParser().clearPendingErrors();
if (PendingErrors)
- return MatchOperand_ParseFail;
+ return ParseStatus::Failure;
if (Result)
- return MatchOperand_NoMatch;
- return MatchOperand_Success;
+ return ParseStatus::NoMatch;
+ return ParseStatus::Success;
}
std::unique_ptr<X86Operand> X86AsmParser::DefaultMemSIOperand(SMLoc Loc) {
diff --git a/llvm/lib/Target/Xtensa/AsmParser/XtensaAsmParser.cpp b/llvm/lib/Target/Xtensa/AsmParser/XtensaAsmParser.cpp
index 042efb7c42aa85c..76c7328b547cd47 100644
--- a/llvm/lib/Target/Xtensa/AsmParser/XtensaAsmParser.cpp
+++ b/llvm/lib/Target/Xtensa/AsmParser/XtensaAsmParser.cpp
@@ -35,8 +35,7 @@ class XtensaAsmParser : public MCTargetAsmParser {
SMLoc getLoc() const { return getParser().getTok().getLoc(); }
- bool parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override;
+ bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
bool ParseInstruction(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc, OperandVector &Operands) override;
bool MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode,
@@ -58,9 +57,9 @@ class XtensaAsmParser : public MCTargetAsmParser {
bool SR = false);
bool ParseInstructionWithSR(ParseInstructionInfo &Info, StringRef Name,
SMLoc NameLoc, OperandVector &Operands);
- OperandMatchResultTy tryParseRegister(MCRegister &RegNo, SMLoc &StartLoc,
- SMLoc &EndLoc) override {
- return MatchOperand_NoMatch;
+ ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
+ SMLoc &EndLoc) override {
+ return ParseStatus::NoMatch;
}
ParseStatus parsePCRelTarget(OperandVector &Operands);
@@ -453,12 +452,12 @@ ParseStatus XtensaAsmParser::parsePCRelTarget(OperandVector &Operands) {
return ParseStatus::Success;
}
-bool XtensaAsmParser::parseRegister(MCRegister &RegNo, SMLoc &StartLoc,
+bool XtensaAsmParser::parseRegister(MCRegister &Reg, SMLoc &StartLoc,
SMLoc &EndLoc) {
const AsmToken &Tok = getParser().getTok();
StartLoc = Tok.getLoc();
EndLoc = Tok.getEndLoc();
- RegNo = 0;
+ Reg = Xtensa::NoRegister;
StringRef Name = getLexer().getTok().getIdentifier();
if (!MatchRegisterName(Name) && !MatchRegisterAltName(Name)) {
More information about the llvm-commits
mailing list