summaryrefslogtreecommitdiffstats
path: root/oatdump
diff options
context:
space:
mode:
authorAlexandre Rames <alexandre.rames@arm.com>2014-10-27 11:28:14 +0000
committerAlexandre Rames <alexandre.rames@arm.com>2014-10-29 09:01:14 +0000
commita37d925d405be9f589ac282869a997e73414d859 (patch)
treef48473337f07df6fb9f505651d653ed01b9d2eda /oatdump
parentbe29639a910daaa5bdb0c32be1e03477cf12babb (diff)
downloadart-a37d925d405be9f589ac282869a997e73414d859.tar.gz
art-a37d925d405be9f589ac282869a997e73414d859.tar.bz2
art-a37d925d405be9f589ac282869a997e73414d859.zip
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.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/oatdump/oatdump.cc b/oatdump/oatdump.cc
index f5652779d3..ece9f7d93a 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();
}