diff options
author | Alexandre Rames <alexandre.rames@arm.com> | 2014-10-27 11:28:14 +0000 |
---|---|---|
committer | Alexandre Rames <alexandre.rames@arm.com> | 2014-10-29 09:01:14 +0000 |
commit | a37d925d405be9f589ac282869a997e73414d859 (patch) | |
tree | f48473337f07df6fb9f505651d653ed01b9d2eda /oatdump | |
parent | be29639a910daaa5bdb0c32be1e03477cf12babb (diff) | |
download | art-a37d925d405be9f589ac282869a997e73414d859.zip art-a37d925d405be9f589ac282869a997e73414d859.tar.gz art-a37d925d405be9f589ac282869a997e73414d859.tar.bz2 |
Improvements to the ARM64 disassembler.
This contains three changes:
- Use register aliases in the disassembly.
- When loading from a literal pool, show what is being loaded.
- Disassemble using absolute addresses on ARM64.
This ensures that addresses disassembled are coherent with instruction
location addresses shown.
Examples of disassembled instructions before and after the changes:
Before:
movz w17, #0x471f
ldr d9, pc+736 (addr 0x72690d50)
After:
movz wip1, #0x471f
ldr d9, pc+736 (addr 0x72690d50) (-745.133)
Change-Id: I72fdc160fac26f74126921834f17a581c26fd5d8
Diffstat (limited to 'oatdump')
-rw-r--r-- | oatdump/oatdump.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/oatdump/oatdump.cc b/oatdump/oatdump.cc index f565277..ece9f7d 100644 --- a/oatdump/oatdump.cc +++ b/oatdump/oatdump.cc @@ -374,7 +374,8 @@ class OatDumper { options_(options), disassembler_(Disassembler::Create(oat_file_.GetOatHeader().GetInstructionSet(), new DisassemblerOptions(options_->absolute_addresses_, - oat_file.Begin()))) { + oat_file.Begin(), + true /* can_read_litals_ */))) { CHECK(options_->class_loader_ != nullptr); AddAllOffsets(); } |