diff options
author | Nick Clifton <nickc@redhat.com> | 2001-01-09 20:29:48 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2001-01-09 20:29:48 +0000 |
commit | 6a56ec7ea31f044f802074fac62f0cc30fb81aff (patch) | |
tree | b89e8a764a20324f9f4ce3901b71781e364999dc /opcodes/arm-dis.c | |
parent | 34cc70e3ee451c15c37d1ee243425ca0c1ff3e75 (diff) | |
download | gdb-6a56ec7ea31f044f802074fac62f0cc30fb81aff.zip gdb-6a56ec7ea31f044f802074fac62f0cc30fb81aff.tar.gz gdb-6a56ec7ea31f044f802074fac62f0cc30fb81aff.tar.bz2 |
Fix disassembly of arm-elf instructions with relocs associated with them.
Diffstat (limited to 'opcodes/arm-dis.c')
-rw-r--r-- | opcodes/arm-dis.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c index 262406b..686b18a 100644 --- a/opcodes/arm-dis.c +++ b/opcodes/arm-dis.c @@ -1043,6 +1043,14 @@ print_insn (pc, info, little) given = (b[0] << 24) | (b[1] << 16) | (b[2] << 8) | (b[3]); } + if (info->flags & INSN_HAS_RELOC) + /* If the instruction has a reloc associated with it, then + the offset field in the instruction will actually be the + addend for the reloc. (We are using REL type relocs). + In such cases, we can ignore the pc when computing + addresses, since the addend is not currently pc-relative. */ + pc = 0; + if (is_thumb) status = print_insn_thumb (pc, info, given); else |