@@ -2604,46 +2604,46 @@ ParseStatus RISCVAsmParser::parseRegListCommon(OperandVector &Operands,
26042604 return Error (getLoc (),
26052605 " continuous register list must start from 's0' or 'x8'" );
26062606 getLexer ().Lex (); // eat reg
2607- }
2608-
2609- // parse case like -s1
2610- if (parseOptionalToken (AsmToken::Minus)) {
2611- StringRef EndName = getLexer ().getTok ().getIdentifier ();
2612- // FIXME: the register mapping and checks of RVE is wrong
2613- RegEnd = matchRegisterNameHelper (EndName);
2614- if (!(RegEnd == RISCV::X9 ||
2615- (RegEnd >= RISCV::X18 && RegEnd <= RISCV::X27)))
2616- return Error (getLoc (), " invalid register" );
2617- getLexer ().Lex ();
2618- }
26192607
2620- // parse extra part like ', x18[-x20]' for XRegList
2621- if (parseOptionalToken (AsmToken::Comma)) {
2622- if (RegEnd != RISCV::X9)
2623- return Error (
2624- getLoc (),
2625- " first contiguous registers pair of register list must be 'x8-x9'" );
2608+ // parse case like -s1
2609+ if (parseOptionalToken (AsmToken::Minus)) {
2610+ StringRef EndName = getLexer ().getTok ().getIdentifier ();
2611+ // FIXME: the register mapping and checks of RVE is wrong
2612+ RegEnd = matchRegisterNameHelper (EndName);
2613+ if (!(RegEnd == RISCV::X9 ||
2614+ (RegEnd >= RISCV::X18 && RegEnd <= RISCV::X27)))
2615+ return Error (getLoc (), " invalid register" );
2616+ getLexer ().Lex ();
2617+ }
26262618
2627- // parse ', x18' for extra part
2628- if (getLexer ().isNot (AsmToken::Identifier) || IsRVE)
2629- return Error (getLoc (), " invalid register" );
2630- StringRef EndName = getLexer ().getTok ().getIdentifier ();
2631- RegEnd = MatchRegisterName (EndName);
2632- if (RegEnd != RISCV::X18)
2633- return Error (getLoc (),
2634- " second contiguous registers pair of register list "
2635- " must start from 'x18'" );
2636- getLexer ().Lex ();
2619+ // parse extra part like ', x18[-x20]' for XRegList
2620+ if (parseOptionalToken (AsmToken::Comma)) {
2621+ if (RegEnd != RISCV::X9)
2622+ return Error (
2623+ getLoc (),
2624+ " first contiguous registers pair of register list must be 'x8-x9'" );
26372625
2638- // parse '-x20' for extra part
2639- if (parseOptionalToken (AsmToken::Minus)) {
2626+ // parse ', x18' for extra part
26402627 if (getLexer ().isNot (AsmToken::Identifier) || IsRVE)
26412628 return Error (getLoc (), " invalid register" );
2642- EndName = getLexer ().getTok ().getIdentifier ();
2629+ StringRef EndName = getLexer ().getTok ().getIdentifier ();
26432630 RegEnd = MatchRegisterName (EndName);
2644- if (!(RegEnd >= RISCV::X19 && RegEnd <= RISCV::X27))
2645- return Error (getLoc (), " invalid register" );
2631+ if (RegEnd != RISCV::X18)
2632+ return Error (getLoc (),
2633+ " second contiguous registers pair of register list "
2634+ " must start from 'x18'" );
26462635 getLexer ().Lex ();
2636+
2637+ // parse '-x20' for extra part
2638+ if (parseOptionalToken (AsmToken::Minus)) {
2639+ if (getLexer ().isNot (AsmToken::Identifier) || IsRVE)
2640+ return Error (getLoc (), " invalid register" );
2641+ EndName = getLexer ().getTok ().getIdentifier ();
2642+ RegEnd = MatchRegisterName (EndName);
2643+ if (!(RegEnd >= RISCV::X19 && RegEnd <= RISCV::X27))
2644+ return Error (getLoc (), " invalid register" );
2645+ getLexer ().Lex ();
2646+ }
26472647 }
26482648 }
26492649
0 commit comments