diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2009-08-14 03:42:12 +0000 |
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2009-08-14 03:42:12 +0000 |
| commit | ad8740ae78535fa75ba80bb976b727a87eaa6cbb (patch) | |
| tree | ce9aed626fffce2660bea0a7cb5ad031ff52232d /llvm/lib | |
| parent | 1a019d85540068969c12a5dfe8336f228137975d (diff) | |
| download | bcm5719-llvm-ad8740ae78535fa75ba80bb976b727a87eaa6cbb.tar.gz bcm5719-llvm-ad8740ae78535fa75ba80bb976b727a87eaa6cbb.zip | |
Add X86 instruction printer support for printing MCValue operands.
llvm-svn: 78984
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp b/llvm/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp index 34908dae298..52950aa323b 100644 --- a/llvm/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp +++ b/llvm/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp @@ -55,6 +55,8 @@ void X86ATTAsmPrinter::print_pcrel_imm(const MCInst *MI, unsigned OpNo) { if (Op.isImm()) O << Op.getImm(); + else if (Op.isMCValue()) + Op.getMCValue().print(O); else if (Op.isMBBLabel()) // FIXME: Keep in sync with printBasicBlockLabel. printBasicBlockLabel // should eventually call into this code, not the other way around. @@ -88,6 +90,10 @@ void X86ATTAsmPrinter::printOperand(const MCInst *MI, unsigned OpNo, O << '$'; O << Op.getImm(); return; + } else if (Op.isMCValue()) { + O << '$'; + Op.getMCValue().print(O); + return; } O << "<<UNKNOWN OPERAND KIND>>"; @@ -103,6 +109,8 @@ void X86ATTAsmPrinter::printLeaMemReference(const MCInst *MI, unsigned Op) { int64_t DispVal = DispSpec.getImm(); if (DispVal || (!IndexReg.getReg() && !BaseReg.getReg())) O << DispVal; + } else if (DispSpec.isMCValue()) { + DispSpec.getMCValue().print(O); } else { llvm_unreachable("non-immediate displacement for LEA?"); //assert(DispSpec.isGlobal() || DispSpec.isCPI() || |

