@@ -680,8 +680,7 @@ class AsmParser : public MCAsmParser {
680680 bool parseEscapedString (std::string &Data) override ;
681681 bool parseAngleBracketString (std::string &Data) override ;
682682
683- const MCExpr *applyModifierToExpr (const MCExpr *E,
684- MCSymbolRefExpr::VariantKind Variant);
683+ const MCExpr *applySpecifier (const MCExpr *E, uint32_t Variant);
685684
686685 // Macro-like directives
687686 MCAsmMacro *parseMacroLikeBody (SMLoc DirectiveLoc);
@@ -1228,7 +1227,7 @@ bool AsmParser::parsePrimaryExpr(const MCExpr *&Res, SMLoc &EndLoc,
12281227
12291228 // Lookup the symbol variant if used.
12301229 if (!Split.second .empty ()) {
1231- auto MaybeVariant = MAI.getVariantKindForName (Split.second );
1230+ auto MaybeVariant = MAI.getSpecifierForName (Split.second );
12321231 if (MaybeVariant) {
12331232 SymbolName = Split.first ;
12341233 Variant = MCSymbolRefExpr::VariantKind (*MaybeVariant);
@@ -1277,18 +1276,18 @@ bool AsmParser::parsePrimaryExpr(const MCExpr *&Res, SMLoc &EndLoc,
12771276 StringRef IDVal = getTok ().getString ();
12781277 // Lookup the symbol variant if used.
12791278 std::pair<StringRef, StringRef> Split = IDVal.split (' @' );
1280- MCSymbolRefExpr::VariantKind Variant = MCSymbolRefExpr::VK_None;
1279+ MCSymbolRefExpr::VariantKind Spec = MCSymbolRefExpr::VK_None;
12811280 if (Split.first .size () != IDVal.size ()) {
1282- auto MaybeVariant = MAI.getVariantKindForName (Split.second );
1283- if (!MaybeVariant )
1281+ auto MaybeSpec = MAI.getSpecifierForName (Split.second );
1282+ if (!MaybeSpec )
12841283 return TokError (" invalid variant '" + Split.second + " '" );
12851284 IDVal = Split.first ;
1286- Variant = MCSymbolRefExpr::VariantKind (*MaybeVariant );
1285+ Spec = MCSymbolRefExpr::VariantKind (*MaybeSpec );
12871286 }
12881287 if (IDVal == " f" || IDVal == " b" ) {
12891288 MCSymbol *Sym =
12901289 Ctx.getDirectionalLocalSymbol (IntVal, IDVal == " b" );
1291- Res = MCSymbolRefExpr::create (Sym, Variant , getContext ());
1290+ Res = MCSymbolRefExpr::create (Sym, Spec , getContext ());
12921291 if (IDVal == " b" && Sym->isUndefined ())
12931292 return Error (Loc, " directional label undefined" );
12941293 DirLabels.push_back (std::make_tuple (Loc, CppHashInfo, Sym));
@@ -1353,11 +1352,9 @@ bool AsmParser::parseExpression(const MCExpr *&Res) {
13531352 return parseExpression (Res, EndLoc);
13541353}
13551354
1356- const MCExpr *
1357- AsmParser::applyModifierToExpr (const MCExpr *E,
1358- MCSymbolRefExpr::VariantKind Variant) {
1355+ const MCExpr *AsmParser::applySpecifier (const MCExpr *E, uint32_t Spec) {
13591356 // Ask the target implementation about this expression first.
1360- const MCExpr *NewE = getTargetParser ().applyModifierToExpr (E, Variant , Ctx);
1357+ const MCExpr *NewE = getTargetParser ().applySpecifier (E, Spec , Ctx);
13611358 if (NewE)
13621359 return NewE;
13631360 // Recurse over the given expression, rebuilding it to apply the given variant
@@ -1376,21 +1373,21 @@ AsmParser::applyModifierToExpr(const MCExpr *E,
13761373 return E;
13771374 }
13781375
1379- return MCSymbolRefExpr::create (&SRE->getSymbol (), Variant , getContext ());
1376+ return MCSymbolRefExpr::create (&SRE->getSymbol (), Spec , getContext ());
13801377 }
13811378
13821379 case MCExpr::Unary: {
13831380 const MCUnaryExpr *UE = cast<MCUnaryExpr>(E);
1384- const MCExpr *Sub = applyModifierToExpr (UE->getSubExpr (), Variant );
1381+ const MCExpr *Sub = applySpecifier (UE->getSubExpr (), Spec );
13851382 if (!Sub)
13861383 return nullptr ;
13871384 return MCUnaryExpr::create (UE->getOpcode (), Sub, getContext ());
13881385 }
13891386
13901387 case MCExpr::Binary: {
13911388 const MCBinaryExpr *BE = cast<MCBinaryExpr>(E);
1392- const MCExpr *LHS = applyModifierToExpr (BE->getLHS (), Variant );
1393- const MCExpr *RHS = applyModifierToExpr (BE->getRHS (), Variant );
1389+ const MCExpr *LHS = applySpecifier (BE->getLHS (), Spec );
1390+ const MCExpr *RHS = applySpecifier (BE->getRHS (), Spec );
13941391
13951392 if (!LHS && !RHS)
13961393 return nullptr ;
@@ -1470,12 +1467,11 @@ bool AsmParser::parseExpression(const MCExpr *&Res, SMLoc &EndLoc) {
14701467 if (Lexer.isNot (AsmToken::Identifier))
14711468 return TokError (" unexpected symbol modifier following '@'" );
14721469
1473- auto Variant = MAI.getVariantKindForName (getTok ().getIdentifier ());
1474- if (!Variant )
1470+ auto Spec = MAI.getSpecifierForName (getTok ().getIdentifier ());
1471+ if (!Spec )
14751472 return TokError (" invalid variant '" + getTok ().getIdentifier () + " '" );
14761473
1477- const MCExpr *ModifiedRes =
1478- applyModifierToExpr (Res, MCSymbolRefExpr::VariantKind (*Variant));
1474+ const MCExpr *ModifiedRes = applySpecifier (Res, *Spec);
14791475 if (!ModifiedRes) {
14801476 return TokError (" invalid modifier '" + getTok ().getIdentifier () +
14811477 " ' (no symbols present)" );
0 commit comments