Print moxie addresses nicely.
authorAnthony Green <green@redhat.com>
Sat, 6 Jun 2009 13:02:21 +0000 (13:02 +0000)
committerAnthony Green <green@redhat.com>
Sat, 6 Jun 2009 13:02:21 +0000 (13:02 +0000)
include/opcode/ChangeLog
include/opcode/moxie.h
opcodes/ChangeLog
opcodes/moxie-dis.c
opcodes/moxie-opc.c

index 0985425fbf8eda73308aa35bd20862bcab9c7a45..df8a7e6064435a27004b6e7258fe7b9ad27b75f7 100644 (file)
@@ -1,3 +1,7 @@
+2009-06-06  Anthony Green  <green@moxielogic.com>
+
+       * moxie.h (MOXIE_F1_M): Define.
+
 2009-04-15  Anthony Green  <green@moxielogic.com>
 
        * moxie.h: Created.
index c996fe584e4485130d163aff79cf3a0eb2fc5b41..0035f5f7571a3d58efee9ee24703c99ee9e279c4 100644 (file)
@@ -24,6 +24,7 @@
     Some use A and B registers                      (MOXIE_F1_AB)
     Some use A and consume a 4 byte immediate value (MOXIE_F1_A4)
     Some use just a 4 byte immediate value          (MOXIE_F1_4)
+    Some use just a 4 byte memory address           (MOXIE_F1_M)
     Some use B and an indirect A                    (MOXIE_F1_AiB)
     Some use A and an indirect B                    (MOXIE_F1_ABi)
     Some consume a 4 byte immediate value and use X (MOXIE_F1_4A)
@@ -50,6 +51,7 @@
 #define MOXIE_F1_4A   0x108
 #define MOXIE_F1_AiB4 0x109
 #define MOXIE_F1_ABi4 0x10a
+#define MOXIE_F1_M    0x10b
 
 #define MOXIE_F2_NARG 0x200
 #define MOXIE_F2_A8V  0x201
index 7b8e100d5f5d7187b1bd1956c30766824b343d5e..8333e3282183de268f2f207a47a973ab8b9f474e 100644 (file)
@@ -1,3 +1,8 @@
+2009-06-06  Anthony Green  <green@moxielogic.com>
+
+       * moxie-opc.c: Recode some MOXIE_F1_4 opcodes as MOXIE_F1_M.
+       * moxie-dis.c (print_insn_moxie): Handle MOXIE_F1_M case.
+
 2009-06-04  Alan Modra  <amodra@bigpond.net.au>
 
        * dep-in.sed: Don't use \n in replacement part of s command.
index b1d123f5a440c393117de94a14648b9af3ff08e4..d63eb2db45c782261bcefa06b7fd741d13054df6 100644 (file)
@@ -93,6 +93,17 @@ print_insn_moxie (bfd_vma addr, struct disassemble_info * info)
            length = 6;
          }
          break;
+       case MOXIE_F1_M:
+         {
+           unsigned imm;
+           if ((status = info->read_memory_func (addr + 2, buffer, 4, info)))
+             goto fail;
+           imm = bfd_getb32 (buffer);
+           fpr (stream, "%s\t", opcode->name);
+           info->print_address_func ((bfd_vma) imm, info);
+           length = 6;
+         }
+         break;
        case MOXIE_F1_AiB:
          fpr (stream, "%s\t(%s), %s", opcode->name,
               reg_names[OP_A(iword)], reg_names[OP_B(iword)]);
index 559cd115e8c20922629725f3ac59223b37331ee9..7275e3aa79d4e589b67390271becda232c177ac2 100644 (file)
@@ -55,7 +55,7 @@ const moxie_opc_info_t moxie_form1_opc_info[64] =
     { 0x00, MOXIE_F1_NARG, "nop" },
     { 0x01, MOXIE_F1_A4,   "ldi.l" },
     { 0x02, MOXIE_F1_AB,   "mov" },
-    { 0x03, MOXIE_F1_4,    "jsra" },
+    { 0x03, MOXIE_F1_M,    "jsra" },
     { 0x04, MOXIE_F1_NARG, "ret" },
     { 0x05, MOXIE_F1_AB,   "add.l" },
     { 0x06, MOXIE_F1_AB,   "push" },
@@ -67,18 +67,18 @@ const moxie_opc_info_t moxie_form1_opc_info[64] =
     { 0x0c, MOXIE_F1_ABi4, "ldo.l" },
     { 0x0d, MOXIE_F1_AiB4, "sto.l" },
     { 0x0e, MOXIE_F1_AB,   "cmp" },
-    { 0x0f, MOXIE_F1_4,    "beq" },
-    { 0x10, MOXIE_F1_4,    "bne" },
-    { 0x11, MOXIE_F1_4,    "blt" },
-    { 0x12, MOXIE_F1_4,    "bgt" },
-    { 0x13, MOXIE_F1_4,    "bltu" },
-    { 0x14, MOXIE_F1_4,    "bgtu" },
-    { 0x15, MOXIE_F1_4,    "bge" },
-    { 0x16, MOXIE_F1_4,    "ble" },
-    { 0x17, MOXIE_F1_4,    "bgeu" },
-    { 0x18, MOXIE_F1_4,    "bleu" },
+    { 0x0f, MOXIE_F1_M,    "beq" },
+    { 0x10, MOXIE_F1_M,    "bne" },
+    { 0x11, MOXIE_F1_M,    "blt" },
+    { 0x12, MOXIE_F1_M,    "bgt" },
+    { 0x13, MOXIE_F1_M,    "bltu" },
+    { 0x14, MOXIE_F1_M,    "bgtu" },
+    { 0x15, MOXIE_F1_M,    "bge" },
+    { 0x16, MOXIE_F1_M,    "ble" },
+    { 0x17, MOXIE_F1_M,    "bgeu" },
+    { 0x18, MOXIE_F1_M,    "bleu" },
     { 0x19, MOXIE_F1_A,    "jsr" },
-    { 0x1a, MOXIE_F1_4,    "jmpa" },
+    { 0x1a, MOXIE_F1_M,    "jmpa" },
     { 0x1b, MOXIE_F1_A4,   "ldi.b" },
     { 0x1c, MOXIE_F1_ABi,  "ld.b" },
     { 0x1d, MOXIE_F1_A4,   "lda.b" },