Skip to content

Commit 84420a2

Browse files
authored
[RISCV] Move matchRegisterNameHelper into the RISCVAsmParser and remove IsRVE argument. NFC (llvm#85172)
With it in the class we can use isRVE() inside the function instead of making the callers do it.
1 parent 437fcc6 commit 84420a2

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ class RISCVAsmParser : public MCTargetAsmParser {
107107
uint64_t &ErrorInfo,
108108
bool MatchingInlineAsm) override;
109109

110+
MCRegister matchRegisterNameHelper(StringRef Name) const;
110111
bool parseRegister(MCRegister &Reg, SMLoc &StartLoc, SMLoc &EndLoc) override;
111112
ParseStatus tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
112113
SMLoc &EndLoc) override;
@@ -1630,7 +1631,7 @@ bool RISCVAsmParser::MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode,
16301631
// alternative ABI names), setting RegNo to the matching register. Upon
16311632
// failure, returns a non-valid MCRegister. If IsRVE, then registers x16-x31
16321633
// will be rejected.
1633-
static MCRegister matchRegisterNameHelper(bool IsRVE, StringRef Name) {
1634+
MCRegister RISCVAsmParser::matchRegisterNameHelper(StringRef Name) const {
16341635
MCRegister Reg = MatchRegisterName(Name);
16351636
// The 16-/32- and 64-bit FPRs have the same asm name. Check that the initial
16361637
// match always matches the 64-bit variant, and not the 16/32-bit one.
@@ -1641,7 +1642,7 @@ static MCRegister matchRegisterNameHelper(bool IsRVE, StringRef Name) {
16411642
static_assert(RISCV::F0_D < RISCV::F0_F, "FPR matching must be updated");
16421643
if (!Reg)
16431644
Reg = MatchRegisterAltName(Name);
1644-
if (IsRVE && Reg >= RISCV::X16 && Reg <= RISCV::X31)
1645+
if (isRVE() && Reg >= RISCV::X16 && Reg <= RISCV::X31)
16451646
Reg = RISCV::NoRegister;
16461647
return Reg;
16471648
}
@@ -1660,7 +1661,7 @@ ParseStatus RISCVAsmParser::tryParseRegister(MCRegister &Reg, SMLoc &StartLoc,
16601661
EndLoc = Tok.getEndLoc();
16611662
StringRef Name = getLexer().getTok().getIdentifier();
16621663

1663-
Reg = matchRegisterNameHelper(isRVE(), Name);
1664+
Reg = matchRegisterNameHelper(Name);
16641665
if (!Reg)
16651666
return ParseStatus::NoMatch;
16661667

@@ -1693,7 +1694,7 @@ ParseStatus RISCVAsmParser::parseRegister(OperandVector &Operands,
16931694
return ParseStatus::NoMatch;
16941695
case AsmToken::Identifier:
16951696
StringRef Name = getLexer().getTok().getIdentifier();
1696-
MCRegister RegNo = matchRegisterNameHelper(isRVE(), Name);
1697+
MCRegister RegNo = matchRegisterNameHelper(Name);
16971698

16981699
if (!RegNo) {
16991700
if (HadParens)
@@ -2232,7 +2233,7 @@ ParseStatus RISCVAsmParser::parseMaskReg(OperandVector &Operands) {
22322233
StringRef Name = getLexer().getTok().getIdentifier();
22332234
if (!Name.consume_back(".t"))
22342235
return Error(getLoc(), "expected '.t' suffix");
2235-
MCRegister RegNo = matchRegisterNameHelper(isRVE(), Name);
2236+
MCRegister RegNo = matchRegisterNameHelper(Name);
22362237

22372238
if (!RegNo)
22382239
return ParseStatus::NoMatch;
@@ -2250,7 +2251,7 @@ ParseStatus RISCVAsmParser::parseGPRAsFPR(OperandVector &Operands) {
22502251
return ParseStatus::NoMatch;
22512252

22522253
StringRef Name = getLexer().getTok().getIdentifier();
2253-
MCRegister RegNo = matchRegisterNameHelper(isRVE(), Name);
2254+
MCRegister RegNo = matchRegisterNameHelper(Name);
22542255

22552256
if (!RegNo)
22562257
return ParseStatus::NoMatch;
@@ -2281,7 +2282,7 @@ ParseStatus RISCVAsmParser::parseGPRPair(OperandVector &Operands,
22812282
return ParseStatus::NoMatch;
22822283

22832284
StringRef Name = getLexer().getTok().getIdentifier();
2284-
MCRegister RegNo = matchRegisterNameHelper(isRVE(), Name);
2285+
MCRegister RegNo = matchRegisterNameHelper(Name);
22852286

22862287
if (!RegNo)
22872288
return ParseStatus::NoMatch;
@@ -2461,7 +2462,7 @@ ParseStatus RISCVAsmParser::parseRegReg(OperandVector &Operands) {
24612462
return ParseStatus::NoMatch;
24622463

24632464
StringRef RegName = getLexer().getTok().getIdentifier();
2464-
MCRegister Reg = matchRegisterNameHelper(isRVE(), RegName);
2465+
MCRegister Reg = matchRegisterNameHelper(RegName);
24652466
if (!Reg)
24662467
return Error(getLoc(), "invalid register");
24672468
getLexer().Lex();
@@ -2473,7 +2474,7 @@ ParseStatus RISCVAsmParser::parseRegReg(OperandVector &Operands) {
24732474
return Error(getLoc(), "expected register");
24742475

24752476
StringRef Reg2Name = getLexer().getTok().getIdentifier();
2476-
MCRegister Reg2 = matchRegisterNameHelper(isRVE(), Reg2Name);
2477+
MCRegister Reg2 = matchRegisterNameHelper(Reg2Name);
24772478
if (!Reg2)
24782479
return Error(getLoc(), "invalid register");
24792480
getLexer().Lex();
@@ -2500,7 +2501,7 @@ ParseStatus RISCVAsmParser::parseReglist(OperandVector &Operands) {
25002501
return Error(getLoc(), "register list must start from 'ra' or 'x1'");
25012502

25022503
StringRef RegName = getLexer().getTok().getIdentifier();
2503-
MCRegister RegStart = matchRegisterNameHelper(IsEABI, RegName);
2504+
MCRegister RegStart = matchRegisterNameHelper(RegName);
25042505
MCRegister RegEnd;
25052506
if (RegStart != RISCV::X1)
25062507
return Error(getLoc(), "register list must start from 'ra' or 'x1'");
@@ -2511,7 +2512,7 @@ ParseStatus RISCVAsmParser::parseReglist(OperandVector &Operands) {
25112512
if (getLexer().isNot(AsmToken::Identifier))
25122513
return Error(getLoc(), "invalid register");
25132514
StringRef RegName = getLexer().getTok().getIdentifier();
2514-
RegStart = matchRegisterNameHelper(IsEABI, RegName);
2515+
RegStart = matchRegisterNameHelper(RegName);
25152516
if (!RegStart)
25162517
return Error(getLoc(), "invalid register");
25172518
if (RegStart != RISCV::X8)
@@ -2524,7 +2525,7 @@ ParseStatus RISCVAsmParser::parseReglist(OperandVector &Operands) {
25242525
if (parseOptionalToken(AsmToken::Minus)) {
25252526
StringRef EndName = getLexer().getTok().getIdentifier();
25262527
// FIXME: the register mapping and checks of EABI is wrong
2527-
RegEnd = matchRegisterNameHelper(IsEABI, EndName);
2528+
RegEnd = matchRegisterNameHelper(EndName);
25282529
if (!RegEnd)
25292530
return Error(getLoc(), "invalid register");
25302531
if (IsEABI && RegEnd != RISCV::X9)

0 commit comments

Comments
 (0)