diff options
author | Kevin Enderby <enderby@apple.com> | 2013-11-01 00:00:07 +0000 |
---|---|---|
committer | Kevin Enderby <enderby@apple.com> | 2013-11-01 00:00:07 +0000 |
commit | 3c5ac81032217df8b4b81838fd16f51a1003699a (patch) | |
tree | e50704a6232ff97219003573854220f60e78c0b8 /llvm/lib/CodeGen | |
parent | 779f921311d9c94013eae1b260a6765411f74e9f (diff) | |
download | bcm5719-llvm-3c5ac81032217df8b4b81838fd16f51a1003699a.tar.gz bcm5719-llvm-3c5ac81032217df8b4b81838fd16f51a1003699a.zip |
Add to the disassembler C API output reference types for
Objective-C data structures.
This is allows tools such as darwin's otool(1) that uses the
LLVM disassembler take a pointer value being loaded by
an instruction and add a comment to what it is being referenced
to make following disassembly of Objective-C programs
more readable.
For example disassembling the Mac OS X TextEdit app one
will see comments like the following:
movq 0x20684(%rip), %rsi ## Objc selector ref: standardUserDefaults
movq 0x21985(%rip), %rdi ## Objc class ref: _OBJC_CLASS_$_NSUserDefaults
movq 0x1d156(%rip), %r14 ## Objc message: +[NSUserDefaults standardUserDefaults]
leaq 0x23615(%rip), %rdx ## Objc cfstring ref: @"SelectLinePanel"
callq 0x10001386c ## Objc message: -[[%rdi super] initWithWindowNibName:]
These diffs also include putting quotes around C strings
in literal pools and uses "symbol address" in the comment
when adding a symbol name to the comment to tell these
types of references apart:
leaq 0x4f(%rip), %rax ## literal pool for: "Hello world"
movq 0x1c3ea(%rip), %rax ## literal pool symbol address: ___stack_chk_guard
Of course the easy changes are in the LLVM disassembler and
the hard work is up to the implementer of the SymbolLookUp()
call back.
rdar://10602439
llvm-svn: 193833
Diffstat (limited to 'llvm/lib/CodeGen')
0 files changed, 0 insertions, 0 deletions