Disassemble PC relative literals.
Change-Id: I9b60e0efc9e311c085abb60dc867407ee17dc61b
diff --git a/src/disassembler_arm.cc b/src/disassembler_arm.cc
index cb5bd48..57fcec3 100644
--- a/src/disassembler_arm.cc
+++ b/src/disassembler_arm.cc
@@ -696,6 +696,10 @@
if (Rn.r == 9) {
args << " ; ";
Thread::DumpThreadOffset(args, imm12, 4);
+ } else if (Rn.r == 15) {
+ intptr_t lit_adr = reinterpret_cast<intptr_t>(instr_ptr);
+ lit_adr = RoundDown(lit_adr, 4) + 4 + imm12;
+ args << " ; " << reinterpret_cast<void*>(*reinterpret_cast<int32_t*>(lit_adr));
}
} else if (op4 == 0) {
// LDR.W Rt, [Rn, Rm{, LSL #imm2}] - 111 11 00 00 101 nnnn tttt 000000iimmmm