diff options
author | Jeff Law <law@redhat.com> | 1996-07-11 18:59:57 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 1996-07-11 18:59:57 +0000 |
commit | 8e9c1f74c90ff518588439770a84232beaf3d0f1 (patch) | |
tree | f33275f99a31b45565098daf9a2ab5a02045a6e4 | |
parent | 52aa53362eb354df48dbeed236ef7576e13bffac (diff) | |
download | gdb-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.
-rw-r--r-- | opcodes/ChangeLog | 2 | ||||
-rw-r--r-- | opcodes/h8300-dis.c | 24 |
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; |