diff options
author | Andrew Burgess <andrew.burgess@embecosm.com> | 2019-11-18 12:09:04 +0000 |
---|---|---|
committer | Andrew Burgess <andrew.burgess@embecosm.com> | 2019-11-28 00:03:03 +0000 |
commit | 229a22cfd2fd3c82a1b57d4af104f361cb0b0a33 (patch) | |
tree | ba37b7607875260926a21347a499d1ba03c46f78 /binutils/objdump.c | |
parent | 955ff7fcf8ddc90200819a184380c64c27b76e91 (diff) | |
download | gdb-229a22cfd2fd3c82a1b57d4af104f361cb0b0a33.zip gdb-229a22cfd2fd3c82a1b57d4af104f361cb0b0a33.tar.gz gdb-229a22cfd2fd3c82a1b57d4af104f361cb0b0a33.tar.bz2 |
binutils: Add a new function to initialise DWARF register name state
Adds a new API function init_dwarf_regnames_by_bfd_arch_and_mach to
initialise the register name state from a BFD architecture and machine
type.
There should be no user visible changes after this commit.
binutils/ChangeLog:
* dwarf.c (init_dwarf_regnames_by_bfd_arch_and_mach): New
function.
* dwarf.h (init_dwarf_regnames_by_bfd_arch_and_mach): Declare.
* objdump.c (dump_dwarf): Call new function instead of calling
specific initialization routines. Restrucure so that eh_addr_size
is still calculated correctly.
Change-Id: I346d665d2079a18ec4d04bd41893d0e9dc05e4b3
Diffstat (limited to 'binutils/objdump.c')
-rw-r--r-- | binutils/objdump.c | 40 |
1 files changed, 4 insertions, 36 deletions
diff --git a/binutils/objdump.c b/binutils/objdump.c index 115f1fc..6a1f142 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -2975,44 +2975,8 @@ dump_dwarf (bfd *abfd) return; } - eh_addr_size = bfd_arch_bits_per_address (abfd) / 8; - switch (bfd_get_arch (abfd)) { - case bfd_arch_i386: - switch (bfd_get_mach (abfd)) - { - case bfd_mach_x86_64: - case bfd_mach_x86_64_intel_syntax: - case bfd_mach_x86_64_nacl: - case bfd_mach_x64_32: - case bfd_mach_x64_32_intel_syntax: - case bfd_mach_x64_32_nacl: - init_dwarf_regnames_x86_64 (); - break; - - default: - init_dwarf_regnames_i386 (); - break; - } - break; - - case bfd_arch_iamcu: - init_dwarf_regnames_iamcu (); - break; - - case bfd_arch_aarch64: - init_dwarf_regnames_aarch64(); - break; - - case bfd_arch_s390: - init_dwarf_regnames_s390 (); - break; - - case bfd_arch_riscv: - init_dwarf_regnames_riscv (); - break; - case bfd_arch_s12z: /* S12Z has a 24 bit address space. But the only known producer of dwarf_info encodes addresses into 32 bits. */ @@ -3020,9 +2984,13 @@ dump_dwarf (bfd *abfd) break; default: + eh_addr_size = bfd_arch_bits_per_address (abfd) / 8; break; } + init_dwarf_regnames_by_bfd_arch_and_mach (bfd_get_arch (abfd), + bfd_get_mach (abfd)); + bfd_map_over_sections (abfd, dump_dwarf_section, NULL); } |