summaryrefslogtreecommitdiff
path: root/disassembler/disassembler.h
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 /disassembler/disassembler.h
parentbe29639a910daaa5bdb0c32be1e03477cf12babb (diff)
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 'disassembler/disassembler.h')
-rw-r--r--disassembler/disassembler.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/disassembler/disassembler.h b/disassembler/disassembler.h
index 487f43315a..1d827bae35 100644
--- a/disassembler/disassembler.h
+++ b/disassembler/disassembler.h
@@ -34,8 +34,14 @@ class DisassemblerOptions {
// Base addess for calculating relative code offsets when absolute_addresses_ is false.
const uint8_t* const base_address_;
- DisassemblerOptions(bool absolute_addresses, const uint8_t* base_address)
- : absolute_addresses_(absolute_addresses), base_address_(base_address) {}
+ // If set, the disassembler is allowed to look at load targets in literal
+ // pools.
+ const bool can_read_literals_;
+
+ DisassemblerOptions(bool absolute_addresses, const uint8_t* base_address,
+ bool can_read_literals)
+ : absolute_addresses_(absolute_addresses), base_address_(base_address),
+ can_read_literals_(can_read_literals) {}
private:
DISALLOW_COPY_AND_ASSIGN(DisassemblerOptions);