@@ -2612,46 +2612,46 @@ ParseStatus RISCVAsmParser::parseRegListCommon(OperandVector &Operands,
26122612 return Error (getLoc (),
26132613 " continuous register list must start from 's0' or 'x8'" );
26142614 getLexer ().Lex (); // eat reg
2615- }
2616-
2617- // parse case like -s1
2618- if (parseOptionalToken (AsmToken::Minus)) {
2619- StringRef EndName = getLexer ().getTok ().getIdentifier ();
2620- // FIXME: the register mapping and checks of RVE is wrong
2621- RegEnd = matchRegisterNameHelper (EndName);
2622- if (!(RegEnd == RISCV::X9 ||
2623- (RegEnd >= RISCV::X18 && RegEnd <= RISCV::X27)))
2624- return Error (getLoc (), " invalid register" );
2625- getLexer ().Lex ();
2626- }
26272615
2628- // parse extra part like ', x18[-x20]' for XRegList
2629- if (parseOptionalToken (AsmToken::Comma)) {
2630- if (RegEnd != RISCV::X9)
2631- return Error (
2632- getLoc (),
2633- " first contiguous registers pair of register list must be 'x8-x9'" );
2616+ // parse case like -s1
2617+ if (parseOptionalToken (AsmToken::Minus)) {
2618+ StringRef EndName = getLexer ().getTok ().getIdentifier ();
2619+ // FIXME: the register mapping and checks of RVE is wrong
2620+ RegEnd = matchRegisterNameHelper (EndName);
2621+ if (!(RegEnd == RISCV::X9 ||
2622+ (RegEnd >= RISCV::X18 && RegEnd <= RISCV::X27)))
2623+ return Error (getLoc (), " invalid register" );
2624+ getLexer ().Lex ();
2625+ }
26342626
2635- // parse ', x18' for extra part
2636- if (getLexer ().isNot (AsmToken::Identifier) || IsRVE)
2637- return Error (getLoc (), " invalid register" );
2638- StringRef EndName = getLexer ().getTok ().getIdentifier ();
2639- RegEnd = MatchRegisterName (EndName);
2640- if (RegEnd != RISCV::X18)
2641- return Error (getLoc (),
2642- " second contiguous registers pair of register list "
2643- " must start from 'x18'" );
2644- getLexer ().Lex ();
2627+ // parse extra part like ', x18[-x20]' for XRegList
2628+ if (parseOptionalToken (AsmToken::Comma)) {
2629+ if (RegEnd != RISCV::X9)
2630+ return Error (
2631+ getLoc (),
2632+ " first contiguous registers pair of register list must be 'x8-x9'" );
26452633
2646- // parse '-x20' for extra part
2647- if (parseOptionalToken (AsmToken::Minus)) {
2634+ // parse ', x18' for extra part
26482635 if (getLexer ().isNot (AsmToken::Identifier) || IsRVE)
26492636 return Error (getLoc (), " invalid register" );
2650- EndName = getLexer ().getTok ().getIdentifier ();
2637+ StringRef EndName = getLexer ().getTok ().getIdentifier ();
26512638 RegEnd = MatchRegisterName (EndName);
2652- if (!(RegEnd >= RISCV::X19 && RegEnd <= RISCV::X27))
2653- return Error (getLoc (), " invalid register" );
2639+ if (RegEnd != RISCV::X18)
2640+ return Error (getLoc (),
2641+ " second contiguous registers pair of register list "
2642+ " must start from 'x18'" );
26542643 getLexer ().Lex ();
2644+
2645+ // parse '-x20' for extra part
2646+ if (parseOptionalToken (AsmToken::Minus)) {
2647+ if (getLexer ().isNot (AsmToken::Identifier) || IsRVE)
2648+ return Error (getLoc (), " invalid register" );
2649+ EndName = getLexer ().getTok ().getIdentifier ();
2650+ RegEnd = MatchRegisterName (EndName);
2651+ if (!(RegEnd >= RISCV::X19 && RegEnd <= RISCV::X27))
2652+ return Error (getLoc (), " invalid register" );
2653+ getLexer ().Lex ();
2654+ }
26552655 }
26562656 }
26572657
0 commit comments