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 | c736042f3f03551d7c4a5438b09ab9bca9992021 (patch) | |
tree | c9b1e064adc7012849a2cec9ad48f130b23dd074 /lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp | |
parent | a31e630d986e72b16987b429f237a66491d83179 (diff) | |
download | external_llvm-c736042f3f03551d7c4a5438b09ab9bca9992021.tar.gz external_llvm-c736042f3f03551d7c4a5438b09ab9bca9992021.tar.bz2 external_llvm-c736042f3f03551d7c4a5438b09ab9bca9992021.zip |
Add X86 instruction printer support for printing MCValue operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78984 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp')
-rw-r--r-- | lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp b/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp index 34908dae29..52950aa323 100644 --- a/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp +++ b/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() || |