This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Add init_dwarf_regnames_s390


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d6bb17b07976ecbced934c1ad2cfec9976dbd8ce

commit d6bb17b07976ecbced934c1ad2cfec9976dbd8ce
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Date:   Wed Apr 13 10:56:30 2016 +0200

    Add init_dwarf_regnames_s390
    
    Define and use DWARF register names for s390.
    
    binutils/ChangeLog:
    
    	* dwarf.h (init_dwarf_regnames_s390): Declare.
    	* dwarf.c (dwarf_regnames_s390): New.
    	(init_dwarf_regnames_s390): New.
    	(init_dwarf_regnames): Call it.
    	* objdump.c (dump_dwarf): Likewise.

Diff:
---
 binutils/ChangeLog |  8 ++++++++
 binutils/dwarf.c   | 28 ++++++++++++++++++++++++++++
 binutils/dwarf.h   |  1 +
 binutils/objdump.c |  4 ++++
 4 files changed, 41 insertions(+)

diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 89d8767..6f721d9 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,11 @@
+2016-04-13  Andreas Arnez  <arnez@linux.vnet.ibm.com>
+
+	* dwarf.h (init_dwarf_regnames_s390): Declare.
+	* dwarf.c (dwarf_regnames_s390): New.
+	(init_dwarf_regnames_s390): New.
+	(init_dwarf_regnames): Call it.
+	* objdump.c (dump_dwarf): Likewise.
+
 2016-04-11  Maciej W. Rozycki  <macro@imgtec.com>
 
 	* testsuite/binutils-all/mips/mips16-undecoded.d: New test.
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 80f6b87..770fa6b 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -5464,6 +5464,30 @@ init_dwarf_regnames_aarch64 (void)
   dwarf_regnames_count = ARRAY_SIZE (dwarf_regnames_aarch64);
 }
 
+static const char *const dwarf_regnames_s390[] =
+{
+  /* Avoid saying "r5 (r5)", so omit the names of r0-r15.  */
+  NULL,  NULL,  NULL,  NULL,  NULL,  NULL,  NULL,  NULL,
+  NULL,  NULL,  NULL,  NULL,  NULL,  NULL,  NULL,  NULL,
+  "f0",  "f2",  "f4",  "f6",  "f1",  "f3",  "f5",  "f7",
+  "f8",  "f10", "f12", "f14", "f9",  "f11", "f13", "f15",
+  "cr0", "cr1", "cr2", "cr3", "cr4", "cr5", "cr6", "cr7",
+  "cr8", "cr9", "cr10", "cr11", "cr12", "cr13", "cr14", "cr15",
+  "a0",  "a1",  "a2",  "a3",  "a4",  "a5",  "a6",  "a7",
+  "a8",  "a9",  "a10", "a11", "a12", "a13", "a14", "a15",
+  "pswm", "pswa",
+  NULL, NULL,
+  "v16", "v18", "v20", "v22", "v17", "v19", "v21", "v23",
+  "v24", "v26", "v28", "v30", "v25", "v27", "v29", "v31",
+};
+
+void
+init_dwarf_regnames_s390 (void)
+{
+  dwarf_regnames = dwarf_regnames_s390;
+  dwarf_regnames_count = ARRAY_SIZE (dwarf_regnames_s390);
+}
+
 void
 init_dwarf_regnames (unsigned int e_machine)
 {
@@ -5487,6 +5511,10 @@ init_dwarf_regnames (unsigned int e_machine)
       init_dwarf_regnames_aarch64 ();
       break;
 
+    case EM_S390:
+      init_dwarf_regnames_s390 ();
+      break;
+
     default:
       break;
     }
diff --git a/binutils/dwarf.h b/binutils/dwarf.h
index 753a772..ed86810 100644
--- a/binutils/dwarf.h
+++ b/binutils/dwarf.h
@@ -204,6 +204,7 @@ 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);
+extern void init_dwarf_regnames_s390 (void);
 
 extern int load_debug_section (enum dwarf_section_display_enum, void *);
 extern void free_debug_section (enum dwarf_section_display_enum);
diff --git a/binutils/objdump.c b/binutils/objdump.c
index 6c8ab73..5b84801 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -2527,6 +2527,10 @@ dump_dwarf (bfd *abfd)
       init_dwarf_regnames_aarch64();
       break;
 
+    case bfd_arch_s390:
+      init_dwarf_regnames_s390 ();
+      break;
+
     default:
       break;
     }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]