summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCDisassembler
diff options
context:
space:
mode:
authorKevin Enderby <enderby@apple.com>2011-04-11 18:08:50 +0000
committerKevin Enderby <enderby@apple.com>2011-04-11 18:08:50 +0000
commit9377a52c1278a9a0435651af1f7062837e00ca4c (patch)
tree35cae026a9397c886d99e4a388aeabc9149a8985 /llvm/lib/MC/MCDisassembler
parentf8beafe207d3ad54a3c3fca8a9fcaf6871cf836a (diff)
downloadbcm5719-llvm-9377a52c1278a9a0435651af1f7062837e00ca4c.tar.gz
bcm5719-llvm-9377a52c1278a9a0435651af1f7062837e00ca4c.zip
Adding support for printing operands symbolically to llvm's public 'C'
disassembler API. Hooked this up to the ARM target so such tools as Darwin's otool(1) can now print things like branch targets for example this: blx _puts instead of this: blx #-36 And even print the expression encoded in the Mach-O relocation entried for things like this: movt r0, :upper16:((_foo-_bar)+1234) llvm-svn: 129284
Diffstat (limited to 'llvm/lib/MC/MCDisassembler')
-rw-r--r--llvm/lib/MC/MCDisassembler/Disassembler.cpp3
-rw-r--r--llvm/lib/MC/MCDisassembler/Disassembler.h2
2 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/MC/MCDisassembler/Disassembler.cpp b/llvm/lib/MC/MCDisassembler/Disassembler.cpp
index 6ccade99aa0..95c7b845b49 100644
--- a/llvm/lib/MC/MCDisassembler/Disassembler.cpp
+++ b/llvm/lib/MC/MCDisassembler/Disassembler.cpp
@@ -77,8 +77,9 @@ LLVMDisasmContextRef LLVMCreateDisasm(const char *TripleName, void *DisInfo,
assert(Ctx && "Unable to create MCContext!");
// Set up disassembler.
- const MCDisassembler *DisAsm = TheTarget->createMCDisassembler();
+ MCDisassembler *DisAsm = TheTarget->createMCDisassembler();
assert(DisAsm && "Unable to create disassembler!");
+ DisAsm->setupForSymbolicDisassembly(GetOpInfo, DisInfo, Ctx);
// Set up the instruction printer.
int AsmPrinterVariant = MAI->getAssemblerDialect();
diff --git a/llvm/lib/MC/MCDisassembler/Disassembler.h b/llvm/lib/MC/MCDisassembler/Disassembler.h
index f84495182d1..6208b1c8a06 100644
--- a/llvm/lib/MC/MCDisassembler/Disassembler.h
+++ b/llvm/lib/MC/MCDisassembler/Disassembler.h
@@ -69,7 +69,7 @@ private:
public:
LLVMDisasmContext(std::string tripleName, void *disInfo, int tagType,
- LLVMOpInfoCallback getOpInfo,
+ LLVMOpInfoCallback getOpInfo,
LLVMSymbolLookupCallback symbolLookUp,
const Target *theTarget, const MCAsmInfo *mAI,
llvm::TargetMachine *tM, const TargetAsmInfo *tai,
OpenPOWER on IntegriCloud