aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2001-01-09 20:29:48 +0000
committerNick Clifton <nickc@redhat.com>2001-01-09 20:29:48 +0000
commit6a56ec7ea31f044f802074fac62f0cc30fb81aff (patch)
treeb89e8a764a20324f9f4ce3901b71781e364999dc /opcodes
parent34cc70e3ee451c15c37d1ee243425ca0c1ff3e75 (diff)
downloadgdb-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')
-rw-r--r--opcodes/ChangeLog5
-rw-r--r--opcodes/arm-dis.c8
-rw-r--r--opcodes/po/opcodes.pot6
3 files changed, 16 insertions, 3 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 0bea23d..0f5fecf 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,8 @@
+2001-01-09 Nick Clifton <nickc@redhat.com>
+
+ * arm-dis.c (print_insn): Set pc to zero for instructions with
+ a reloc associated with them.
+
2001-01-09 Jeff Johnston <jjohnstn@redhat.com>
* cgen-asm.in (parse_insn_normal): Changed syn to be
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
diff --git a/opcodes/po/opcodes.pot b/opcodes/po/opcodes.pot
index 6bc8d82..f286872 100644
--- a/opcodes/po/opcodes.pot
+++ b/opcodes/po/opcodes.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-12-16 13:55-0800\n"
+"POT-Creation-Date: 2001-01-09 12:07-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -63,7 +63,7 @@ msgstr ""
msgid "Unrecognised disassembler option: %s\n"
msgstr ""
-#: arm-dis.c:1075
+#: arm-dis.c:1083
msgid ""
"\n"
"The following ARM specific disassembler options are supported for use with\n"
@@ -204,7 +204,7 @@ msgstr ""
msgid "%02x\t\t*unknown*"
msgstr ""
-#: i386-dis.c:1949
+#: i386-dis.c:2624
msgid "<internal disassembler error>"
msgstr ""