* h8300-dis.c (bfd_h8_disassemble): Handle "ldm.l" and "stm.l".
authorJeff Law <law@redhat.com>
Thu, 11 Jul 1996 18:59:57 +0000 (18:59 +0000)
committerJeff Law <law@redhat.com>
Thu, 11 Jul 1996 18:59:57 +0000 (18:59 +0000)
More disassembler fixes.  HMSE.

opcodes/ChangeLog
opcodes/h8300-dis.c

index 7c913cd..5bd5bab 100644 (file)
@@ -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.
 
index 659ead8..b3a9496 100644 (file)
@@ -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;