From a37d925d405be9f589ac282869a997e73414d859 Mon Sep 17 00:00:00 2001 From: Alexandre Rames Date: Mon, 27 Oct 2014 11:28:14 +0000 Subject: 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 --- disassembler/disassembler.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'disassembler/disassembler.h') 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); -- cgit v1.2.3-59-g8ed1b