diff options
Diffstat (limited to 'lib/Target/ARM/ARMAsmPrinter.cpp')
| -rw-r--r-- | lib/Target/ARM/ARMAsmPrinter.cpp | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/Target/ARM/ARMAsmPrinter.cpp b/lib/Target/ARM/ARMAsmPrinter.cpp index 2196f9b47f3b5..b227eaed8d610 100644 --- a/lib/Target/ARM/ARMAsmPrinter.cpp +++ b/lib/Target/ARM/ARMAsmPrinter.cpp @@ -117,7 +117,7 @@ bool ARMAsmPrinter::runOnMachineFunction(MachineFunction &MF) {    // globals from all functions in PromotedGlobals.    for (auto *GV : AFI->getGlobalsPromotedToConstantPool())      PromotedGlobals.insert(GV); -   +    // Calculate this function's optimization goal.    unsigned OptimizationGoal;    if (F.hasFnAttribute(Attribute::OptimizeNone)) @@ -367,8 +367,9 @@ bool ARMAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNum,        unsigned NumVals = InlineAsm::getNumOperandRegisters(Flags);        unsigned RC; -      InlineAsm::hasRegClassConstraint(Flags, RC); -      if (RC == ARM::GPRPairRegClassID) { +      const TargetRegisterInfo *TRI = MF->getSubtarget().getRegisterInfo(); +      if (InlineAsm::hasRegClassConstraint(Flags, RC) && +          ARM::GPRPairRegClass.hasSubClassEq(TRI->getRegClass(RC))) {          if (NumVals != 1)            return true;          const MachineOperand &MO = MI->getOperand(OpNum); @@ -990,7 +991,7 @@ void ARMAsmPrinter::EmitJumpTableTBInst(const MachineInstr *MI,    if (Subtarget->isThumb1Only())      EmitAlignment(2); -   +    MCSymbol *JTISymbol = GetARMJTIPICJumpTableLabel(JTI);    OutStreamer->EmitLabel(JTISymbol);  | 
