diff options
-rw-r--r-- | lib/Target/X86/X86AsmPrinter.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/Target/X86/X86AsmPrinter.cpp b/lib/Target/X86/X86AsmPrinter.cpp index 70eae63a8e..09913c2718 100644 --- a/lib/Target/X86/X86AsmPrinter.cpp +++ b/lib/Target/X86/X86AsmPrinter.cpp @@ -106,7 +106,13 @@ namespace { // This method is used by the tablegen'erated instruction printer. void printOperand(const MachineOperand &MO, MVT::ValueType VT) { - printOp(MO); + if (MO.getType() == MachineOperand::MO_MachineRegister) { + assert(MRegisterInfo::isPhysicalRegister(MO.getReg())&&"Not physref??"); + // Bug Workaround: See note in Printer::doInitialization about %. + O << "%" << TM.getRegisterInfo()->get(MO.getReg()).Name; + } else { + printOp(MO); + } } void printImplUsesBefore(const TargetInstrDescriptor &Desc); |