Skip to content

Commit 4e6c48f

Browse files
authored
[RISCV] Merge RegStart with RegEnd in parseRegListCommon. NFC (#133867)
We only need to keep track of the last register seen. We never need the first register once we've parsed. Currently if s0/x8 is used RegStart will point to that and not ra/s1 so it already isn't the start.
1 parent 19fb4b0 commit 4e6c48f

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

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

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2583,9 +2583,8 @@ ParseStatus RISCVAsmParser::parseRegListCommon(OperandVector &Operands,
25832583
return Error(getLoc(), "register list must start from 'ra' or 'x1'");
25842584

25852585
StringRef RegName = getLexer().getTok().getIdentifier();
2586-
MCRegister RegStart = matchRegisterNameHelper(RegName);
2587-
MCRegister RegEnd;
2588-
if (RegStart != RISCV::X1)
2586+
MCRegister RegEnd = matchRegisterNameHelper(RegName);
2587+
if (RegEnd != RISCV::X1)
25892588
return Error(getLoc(), "register list must start from 'ra' or 'x1'");
25902589
getLexer().Lex();
25912590

@@ -2606,10 +2605,10 @@ ParseStatus RISCVAsmParser::parseRegListCommon(OperandVector &Operands,
26062605
if (getLexer().isNot(AsmToken::Identifier))
26072606
return Error(getLoc(), "invalid register");
26082607
StringRef RegName = getLexer().getTok().getIdentifier();
2609-
RegStart = matchRegisterNameHelper(RegName);
2610-
if (!RegStart)
2608+
RegEnd = matchRegisterNameHelper(RegName);
2609+
if (!RegEnd)
26112610
return Error(getLoc(), "invalid register");
2612-
if (RegStart != RISCV::X8)
2611+
if (RegEnd != RISCV::X8)
26132612
return Error(getLoc(),
26142613
"continuous register list must start from 's0' or 'x8'");
26152614
getLexer().Lex(); // eat reg
@@ -2668,9 +2667,6 @@ ParseStatus RISCVAsmParser::parseRegListCommon(OperandVector &Operands,
26682667
if (parseToken(AsmToken::RCurly, "register list must end with '}'"))
26692668
return ParseStatus::Failure;
26702669

2671-
if (!RegEnd)
2672-
RegEnd = RegStart;
2673-
26742670
auto Encode = RISCVZC::encodeRlist(RegEnd, IsEABI);
26752671
assert(Encode != RISCVZC::INVALID_RLIST);
26762672
if (MustIncludeS0)

0 commit comments

Comments
 (0)