@@ -454,7 +454,7 @@ class ARMAsmParser : public MCTargetAsmParser {
454454 bool parseMemory (OperandVector &);
455455 bool parseOperand (OperandVector &, StringRef Mnemonic);
456456 bool parseImmExpr (int64_t &Out);
457- bool parsePrefix (ARMMCExpr ::Specifier &);
457+ bool parsePrefix (ARM ::Specifier &);
458458 bool parseMemRegOffsetShift (ARM_AM::ShiftOpc &ShiftType,
459459 unsigned &ShiftAmount);
460460 bool parseLiteralValues (unsigned Size, SMLoc L);
@@ -1326,7 +1326,7 @@ class ARMOperand : public MCParsedAsmOperand {
13261326 if (isImm () && !isa<MCConstantExpr>(getImm ())) {
13271327 // We want to avoid matching :upper16: and :lower16: as we want these
13281328 // expressions to match in isImm0_65535Expr()
1329- const ARMMCExpr *ARM16Expr = dyn_cast<ARMMCExpr >(getImm ());
1329+ auto *ARM16Expr = dyn_cast<MCSpecifierExpr >(getImm ());
13301330 return (!ARM16Expr || (ARM16Expr->getSpecifier () != ARM::S_HI16 &&
13311331 ARM16Expr->getSpecifier () != ARM::S_LO16));
13321332 }
@@ -6424,15 +6424,16 @@ bool ARMAsmParser::parseOperand(OperandVector &Operands, StringRef Mnemonic) {
64246424 // ":upper8_15:", expression prefixes
64256425 // FIXME: Check it's an expression prefix,
64266426 // e.g. (FOO - :lower16:BAR) isn't legal.
6427- ARMMCExpr ::Specifier Spec;
6427+ ARM ::Specifier Spec;
64286428 if (parsePrefix (Spec))
64296429 return true ;
64306430
64316431 const MCExpr *SubExprVal;
64326432 if (getParser ().parseExpression (SubExprVal))
64336433 return true ;
64346434
6435- const MCExpr *ExprVal = ARMMCExpr::create (Spec, SubExprVal, getContext ());
6435+ const auto *ExprVal =
6436+ MCSpecifierExpr::create (SubExprVal, Spec, getContext ());
64366437 E = SMLoc::getFromPointer (Parser.getTok ().getLoc ().getPointer () - 1 );
64376438 Operands.push_back (ARMOperand::CreateImm (ExprVal, S, E, *this ));
64386439 return false ;
@@ -6471,7 +6472,7 @@ bool ARMAsmParser::parseImmExpr(int64_t &Out) {
64716472// parsePrefix - Parse ARM 16-bit relocations expression prefixes, i.e.
64726473// :lower16: and :upper16: and Thumb 8-bit relocation expression prefixes, i.e.
64736474// :upper8_15:, :upper0_7:, :lower8_15: and :lower0_7:
6474- bool ARMAsmParser::parsePrefix (ARMMCExpr ::Specifier &Spec) {
6475+ bool ARMAsmParser::parsePrefix (ARM ::Specifier &Spec) {
64756476 MCAsmParser &Parser = getParser ();
64766477 Spec = ARM::S_None;
64776478
@@ -6495,7 +6496,7 @@ bool ARMAsmParser::parsePrefix(ARMMCExpr::Specifier &Spec) {
64956496 };
64966497 static const struct PrefixEntry {
64976498 const char *Spelling;
6498- ARMMCExpr ::Specifier Spec;
6499+ ARM ::Specifier Spec;
64996500 uint8_t SupportedFormats;
65006501 } PrefixEntries[] = {
65016502 {" upper16" , ARM::S_HI16, COFF | ELF | MACHO},
@@ -6879,7 +6880,7 @@ static bool isThumbI8Relocation(MCParsedAsmOperand &MCOp) {
68796880 const MCExpr *E = dyn_cast<MCExpr>(Op.getImm ());
68806881 if (!E)
68816882 return false ;
6882- const ARMMCExpr *ARM16Expr = dyn_cast<ARMMCExpr >(E);
6883+ auto *ARM16Expr = dyn_cast<MCSpecifierExpr >(E);
68836884 if (ARM16Expr && (ARM16Expr->getSpecifier () == ARM::S_HI_8_15 ||
68846885 ARM16Expr->getSpecifier () == ARM::S_HI_0_7 ||
68856886 ARM16Expr->getSpecifier () == ARM::S_LO_8_15 ||
@@ -8286,7 +8287,7 @@ bool ARMAsmParser::validateInstruction(MCInst &Inst,
82868287 if (CE) break ;
82878288 const MCExpr *E = dyn_cast<MCExpr>(Op.getImm ());
82888289 if (!E) break ;
8289- const ARMMCExpr *ARM16Expr = dyn_cast<ARMMCExpr >(E);
8290+ auto *ARM16Expr = dyn_cast<MCSpecifierExpr >(E);
82908291 if (!ARM16Expr || (ARM16Expr->getSpecifier () != ARM::S_HI16 &&
82918292 ARM16Expr->getSpecifier () != ARM::S_LO16))
82928293 return Error (
0 commit comments