@@ -117,7 +117,7 @@ class RISCVAsmParser : public MCTargetAsmParser {
117
117
118
118
ParseStatus parseDirective (AsmToken DirectiveID) override ;
119
119
120
- bool parseVTypeToken (StringRef Identifier , VTypeState &State, unsigned &Sew,
120
+ bool parseVTypeToken (const AsmToken &Tok , VTypeState &State, unsigned &Sew,
121
121
unsigned &Lmul, bool &Fractional, bool &TailAgnostic,
122
122
bool &MaskAgnostic);
123
123
bool generateVTypeError (SMLoc ErrorLoc);
@@ -2125,10 +2125,15 @@ ParseStatus RISCVAsmParser::parseJALOffset(OperandVector &Operands) {
2125
2125
return parseImmediate (Operands);
2126
2126
}
2127
2127
2128
- bool RISCVAsmParser::parseVTypeToken (StringRef Identifier , VTypeState &State,
2128
+ bool RISCVAsmParser::parseVTypeToken (const AsmToken &Tok , VTypeState &State,
2129
2129
unsigned &Sew, unsigned &Lmul,
2130
2130
bool &Fractional, bool &TailAgnostic,
2131
2131
bool &MaskAgnostic) {
2132
+ if (Tok.isNot (AsmToken::Identifier))
2133
+ return true ;
2134
+
2135
+ StringRef Identifier = Tok.getIdentifier ();
2136
+
2132
2137
switch (State) {
2133
2138
case VTypeState_SEW:
2134
2139
if (!Identifier.consume_front (" e" ))
@@ -2187,24 +2192,14 @@ ParseStatus RISCVAsmParser::parseVTypeI(OperandVector &Operands) {
2187
2192
2188
2193
VTypeState State = VTypeState_SEW;
2189
2194
2190
- if (getLexer ().isNot (AsmToken::Identifier))
2191
- return ParseStatus::NoMatch;
2192
-
2193
- StringRef Identifier = getTok ().getIdentifier ();
2194
-
2195
- if (parseVTypeToken (Identifier, State, Sew, Lmul, Fractional, TailAgnostic,
2195
+ if (parseVTypeToken (getTok (), State, Sew, Lmul, Fractional, TailAgnostic,
2196
2196
MaskAgnostic))
2197
2197
return ParseStatus::NoMatch;
2198
2198
2199
2199
getLexer ().Lex ();
2200
2200
2201
2201
while (parseOptionalToken (AsmToken::Comma)) {
2202
- if (getLexer ().isNot (AsmToken::Identifier))
2203
- break ;
2204
-
2205
- Identifier = getTok ().getIdentifier ();
2206
-
2207
- if (parseVTypeToken (Identifier, State, Sew, Lmul, Fractional, TailAgnostic,
2202
+ if (parseVTypeToken (getTok (), State, Sew, Lmul, Fractional, TailAgnostic,
2208
2203
MaskAgnostic))
2209
2204
break ;
2210
2205
0 commit comments