aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1996-07-11 18:59:57 +0000
committerJeff Law <law@redhat.com>1996-07-11 18:59:57 +0000
commit8e9c1f74c90ff518588439770a84232beaf3d0f1 (patch)
treef33275f99a31b45565098daf9a2ab5a02045a6e4 /opcodes
parent52aa53362eb354df48dbeed236ef7576e13bffac (diff)
downloadgdb-8e9c1f74c90ff518588439770a84232beaf3d0f1.zip
gdb-8e9c1f74c90ff518588439770a84232beaf3d0f1.tar.gz
gdb-8e9c1f74c90ff518588439770a84232beaf3d0f1.tar.bz2
* h8300-dis.c (bfd_h8_disassemble): Handle "ldm.l" and "stm.l".
More disassembler fixes. HMSE.
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog2
-rw-r--r--opcodes/h8300-dis.c24
2 files changed, 26 insertions, 0 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 7c913cd..5bd5bab 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,7 @@
Thu Jul 11 11:58:44 1996 Jeffrey A Law (law@cygnus.com)
+ * h8300-dis.c (bfd_h8_disassemble): Handle "ldm.l" and "stm.l".
+
* h8300-dis.c (bfd_h8_disassemble): "abs" is implicitly two
if the next arg is marked with SRC_IN_DST. Gross.
diff --git a/opcodes/h8300-dis.c b/opcodes/h8300-dis.c
index 659ead8..b3a9496 100644
--- a/opcodes/h8300-dis.c
+++ b/opcodes/h8300-dis.c
@@ -268,6 +268,30 @@ bfd_h8_disassemble (addr, info, mode)
}
}
fprintf (stream, "%s\t", q->name);
+
+ /* Gross. Disgusting. */
+ if (strcmp (q->name, "ldm.l") == 0)
+ {
+ int count, high;
+
+ count = (data[1] >> 4) & 0x3;
+ high = data[3] & 0x7;
+
+ fprintf (stream, "@sp+,er%d-er%d", high - count, high);
+ return q->length;
+ }
+
+ if (strcmp (q->name, "stm.l") == 0)
+ {
+ int count, low;
+
+ count = (data[1] >> 4) & 0x3;
+ low = data[3] & 0x7;
+
+ fprintf (stream, "er%d-er%d,@-sp", low, low + count);
+ return q->length;
+ }
+
/* Fill in the args */
{
op_type *args = q->args.nib;