@@ -454,7 +454,7 @@ class ARMAsmParser : public MCTargetAsmParser {
454
454
bool parseMemory (OperandVector &);
455
455
bool parseOperand (OperandVector &, StringRef Mnemonic);
456
456
bool parseImmExpr (int64_t &Out);
457
- bool parsePrefix (ARMMCExpr ::Specifier &);
457
+ bool parsePrefix (ARM ::Specifier &);
458
458
bool parseMemRegOffsetShift (ARM_AM::ShiftOpc &ShiftType,
459
459
unsigned &ShiftAmount);
460
460
bool parseLiteralValues (unsigned Size, SMLoc L);
@@ -1326,7 +1326,7 @@ class ARMOperand : public MCParsedAsmOperand {
1326
1326
if (isImm () && !isa<MCConstantExpr>(getImm ())) {
1327
1327
// We want to avoid matching :upper16: and :lower16: as we want these
1328
1328
// expressions to match in isImm0_65535Expr()
1329
- const ARMMCExpr *ARM16Expr = dyn_cast<ARMMCExpr >(getImm ());
1329
+ auto *ARM16Expr = dyn_cast<MCSpecifierExpr >(getImm ());
1330
1330
return (!ARM16Expr || (ARM16Expr->getSpecifier () != ARM::S_HI16 &&
1331
1331
ARM16Expr->getSpecifier () != ARM::S_LO16));
1332
1332
}
@@ -6424,15 +6424,16 @@ bool ARMAsmParser::parseOperand(OperandVector &Operands, StringRef Mnemonic) {
6424
6424
// ":upper8_15:", expression prefixes
6425
6425
// FIXME: Check it's an expression prefix,
6426
6426
// e.g. (FOO - :lower16:BAR) isn't legal.
6427
- ARMMCExpr ::Specifier Spec;
6427
+ ARM ::Specifier Spec;
6428
6428
if (parsePrefix (Spec))
6429
6429
return true ;
6430
6430
6431
6431
const MCExpr *SubExprVal;
6432
6432
if (getParser ().parseExpression (SubExprVal))
6433
6433
return true ;
6434
6434
6435
- const MCExpr *ExprVal = ARMMCExpr::create (Spec, SubExprVal, getContext ());
6435
+ const auto *ExprVal =
6436
+ MCSpecifierExpr::create (SubExprVal, Spec, getContext ());
6436
6437
E = SMLoc::getFromPointer (Parser.getTok ().getLoc ().getPointer () - 1 );
6437
6438
Operands.push_back (ARMOperand::CreateImm (ExprVal, S, E, *this ));
6438
6439
return false ;
@@ -6471,7 +6472,7 @@ bool ARMAsmParser::parseImmExpr(int64_t &Out) {
6471
6472
// parsePrefix - Parse ARM 16-bit relocations expression prefixes, i.e.
6472
6473
// :lower16: and :upper16: and Thumb 8-bit relocation expression prefixes, i.e.
6473
6474
// :upper8_15:, :upper0_7:, :lower8_15: and :lower0_7:
6474
- bool ARMAsmParser::parsePrefix (ARMMCExpr ::Specifier &Spec) {
6475
+ bool ARMAsmParser::parsePrefix (ARM ::Specifier &Spec) {
6475
6476
MCAsmParser &Parser = getParser ();
6476
6477
Spec = ARM::S_None;
6477
6478
@@ -6495,7 +6496,7 @@ bool ARMAsmParser::parsePrefix(ARMMCExpr::Specifier &Spec) {
6495
6496
};
6496
6497
static const struct PrefixEntry {
6497
6498
const char *Spelling;
6498
- ARMMCExpr ::Specifier Spec;
6499
+ ARM ::Specifier Spec;
6499
6500
uint8_t SupportedFormats;
6500
6501
} PrefixEntries[] = {
6501
6502
{" upper16" , ARM::S_HI16, COFF | ELF | MACHO},
@@ -6879,7 +6880,7 @@ static bool isThumbI8Relocation(MCParsedAsmOperand &MCOp) {
6879
6880
const MCExpr *E = dyn_cast<MCExpr>(Op.getImm ());
6880
6881
if (!E)
6881
6882
return false ;
6882
- const ARMMCExpr *ARM16Expr = dyn_cast<ARMMCExpr >(E);
6883
+ auto *ARM16Expr = dyn_cast<MCSpecifierExpr >(E);
6883
6884
if (ARM16Expr && (ARM16Expr->getSpecifier () == ARM::S_HI_8_15 ||
6884
6885
ARM16Expr->getSpecifier () == ARM::S_HI_0_7 ||
6885
6886
ARM16Expr->getSpecifier () == ARM::S_LO_8_15 ||
@@ -8286,7 +8287,7 @@ bool ARMAsmParser::validateInstruction(MCInst &Inst,
8286
8287
if (CE) break ;
8287
8288
const MCExpr *E = dyn_cast<MCExpr>(Op.getImm ());
8288
8289
if (!E) break ;
8289
- const ARMMCExpr *ARM16Expr = dyn_cast<ARMMCExpr >(E);
8290
+ auto *ARM16Expr = dyn_cast<MCSpecifierExpr >(E);
8290
8291
if (!ARM16Expr || (ARM16Expr->getSpecifier () != ARM::S_HI16 &&
8291
8292
ARM16Expr->getSpecifier () != ARM::S_LO16))
8292
8293
return Error (
0 commit comments