Add init_dwarf_regnames_iamcu
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 11 May 2015 17:41:00 +0000 (10:41 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 11 May 2015 17:41:44 +0000 (10:41 -0700)
* dwarf.c (dwarf_regnames_iamcu): New.
(init_dwarf_regnames_iamcu): Likewise.
(init_dwarf_regnames): Call init_dwarf_regnames_iamcu for EM_IAMCU.
* dwarf.h (init_dwarf_regnames_iamcu): New.
* objdump.c (dump_dwarf): Call init_dwarf_regnames_iamcu for
bfd_arch_iamcu.

binutils/ChangeLog
binutils/dwarf.c
binutils/dwarf.h
binutils/objdump.c

index 70b9aaea50ca370d6672d88c2262b402ef103147..45c0bfd780eab22bfbffd260bfa5be84596e2f12 100644 (file)
@@ -1,3 +1,12 @@
+2015-05-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * dwarf.c (dwarf_regnames_iamcu): New.
+       (init_dwarf_regnames_iamcu): Likewise.
+       (init_dwarf_regnames): Call init_dwarf_regnames_iamcu for EM_IAMCU.
+       * dwarf.h (init_dwarf_regnames_iamcu): New.
+       * objdump.c (dump_dwarf): Call init_dwarf_regnames_iamcu for
+       bfd_arch_iamcu.
+
 2015-05-11  H.J. Lu  <hongjiu.lu@intel.com>
 
        * elfedit.c (enum elfclass): New.
index 5f773bb51d469a3bf5ca381f7b0de39f9fa4eca2..96d959af84778c6c19fe3df2b3e385958d8804ed 100644 (file)
@@ -5338,6 +5338,27 @@ static const char *const dwarf_regnames_i386[] =
   "k0", "k1", "k2", "k3", "k4", "k5", "k6", "k7"  /* 93 - 100  */
 };
 
+static const char *const dwarf_regnames_iamcu[] =
+{
+  "eax", "ecx", "edx", "ebx",                    /* 0 - 3  */
+  "esp", "ebp", "esi", "edi",                    /* 4 - 7  */
+  "eip", "eflags", NULL,                         /* 8 - 10  */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 11 - 18  */
+  NULL, NULL,                                    /* 19 - 20  */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 21 - 28  */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 29 - 36  */
+  NULL, NULL, NULL,                              /* 37 - 39  */
+  "es", "cs", "ss", "ds", "fs", "gs", NULL, NULL, /* 40 - 47  */
+  "tr", "ldtr",                                          /* 48 - 49  */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 50 - 57  */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 58 - 65  */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 66 - 73  */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 74 - 81  */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 82 - 89  */
+  NULL, NULL, NULL,                              /* 90 - 92  */
+  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL  /* 93 - 100  */
+};
+
 void
 init_dwarf_regnames_i386 (void)
 {
@@ -5345,6 +5366,13 @@ init_dwarf_regnames_i386 (void)
   dwarf_regnames_count = ARRAY_SIZE (dwarf_regnames_i386);
 }
 
+void
+init_dwarf_regnames_iamcu (void)
+{
+  dwarf_regnames = dwarf_regnames_iamcu;
+  dwarf_regnames_count = ARRAY_SIZE (dwarf_regnames_iamcu);
+}
+
 static const char *const dwarf_regnames_x86_64[] =
 {
   "rax", "rdx", "rcx", "rbx",
@@ -5413,10 +5441,13 @@ init_dwarf_regnames (unsigned int e_machine)
   switch (e_machine)
     {
     case EM_386:
-    case EM_IAMCU:
       init_dwarf_regnames_i386 ();
       break;
 
+    case EM_IAMCU:
+      init_dwarf_regnames_iamcu ();
+      break;
+
     case EM_X86_64:
     case EM_L1OM:
     case EM_K1OM:
index 45f99277dbf63665d58f952b18ded9e16f5e2c3b..0e661d469f0f2fc678a63444f3d0adce243bd469 100644 (file)
@@ -196,6 +196,7 @@ extern int dwarf_check;
 
 extern void init_dwarf_regnames (unsigned int);
 extern void init_dwarf_regnames_i386 (void);
+extern void init_dwarf_regnames_iamcu (void);
 extern void init_dwarf_regnames_x86_64 (void);
 extern void init_dwarf_regnames_aarch64 (void);
 
index f690293d58c8a5f4d0040c995458ac19a3870b92..f87c9c3a8aca045de54c3b3291a9a8c14a113809 100644 (file)
@@ -2449,6 +2449,10 @@ dump_dwarf (bfd *abfd)
        }
       break;
 
+    case bfd_arch_iamcu:
+      init_dwarf_regnames_iamcu ();
+      break;
+
     case bfd_arch_aarch64:
       init_dwarf_regnames_aarch64();
       break;