diff options
author | Andreas Arnez <arnez@linux.vnet.ibm.com> | 2016-04-13 10:56:30 +0200 |
---|---|---|
committer | Andreas Arnez <arnez@linux.vnet.ibm.com> | 2016-04-13 10:56:30 +0200 |
commit | d6bb17b07976ecbced934c1ad2cfec9976dbd8ce (patch) | |
tree | 96b5a8c524c9e40075dfba3da8992bffde4883b9 | |
parent | c1b719e99465b8c888e6f7aa94739eb55adbb764 (diff) | |
download | gdb-d6bb17b07976ecbced934c1ad2cfec9976dbd8ce.zip gdb-d6bb17b07976ecbced934c1ad2cfec9976dbd8ce.tar.gz gdb-d6bb17b07976ecbced934c1ad2cfec9976dbd8ce.tar.bz2 |
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.
-rw-r--r-- | binutils/ChangeLog | 8 | ||||
-rw-r--r-- | binutils/dwarf.c | 28 | ||||
-rw-r--r-- | binutils/dwarf.h | 1 | ||||
-rw-r--r-- | binutils/objdump.c | 4 |
4 files changed, 41 insertions, 0 deletions
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; } |