public inbox for binutils-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] PR29390, DW_CFA_AARCH64_negate_ra_state vs. DW_CFA_GNU_window_save
@ 2022-07-21 7:07 Alan Modra
0 siblings, 0 replies; only message in thread
From: Alan Modra @ 2022-07-21 7:07 UTC (permalink / raw)
To: bfd-cvs
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e4e340a3ff2ccc825f4a40abf947cdf32b3fdbbf
commit e4e340a3ff2ccc825f4a40abf947cdf32b3fdbbf
Author: Alan Modra <amodra@gmail.com>
Date: Thu Jul 21 16:28:50 2022 +0930
PR29390, DW_CFA_AARCH64_negate_ra_state vs. DW_CFA_GNU_window_save
PR 29390
binutils/
* dwarf.c (is_aarch64, DW_CFA_GNU_window_save_name): New.
(display_debug_frames): Use them.
(init_dwarf_regnames_aarch64): Set is_aarch64.
(init_dwarf_regnames_by_elf_machine_code): Clear is_aarch64.
(init_dwarf_regnames_by_bfd_arch_and_mach): Likewise.
gas/
* testsuite/gas/aarch64/pac_ab_key.d: Adjust expected output.
* testsuite/gas/aarch64/pac_negate_ra_state.d: Likewise.
Diff:
---
binutils/dwarf.c | 13 +++++++++++--
gas/testsuite/gas/aarch64/pac_ab_key.d | 4 ++--
gas/testsuite/gas/aarch64/pac_negate_ra_state.d | 2 +-
3 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 7d0a9ffefea..68104a73786 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -8404,7 +8404,7 @@ typedef const char *(*dwarf_regname_lookup_ftype) (unsigned int);
static dwarf_regname_lookup_ftype dwarf_regnames_lookup_func;
static const char *const *dwarf_regnames;
static unsigned int dwarf_regnames_count;
-
+static bool is_aarch64;
/* A marker for a col_type that means this column was never referenced
in the frame info. */
@@ -8523,6 +8523,12 @@ init_dwarf_regnames_iamcu (void)
dwarf_regnames_lookup_func = regname_internal_by_table_only;
}
+static const char *const DW_CFA_GNU_window_save_name[] =
+{
+ "DW_CFA_GNU_window_save",
+ "DW_CFA_AARCH64_negate_ra_state"
+};
+
static const char *const dwarf_regnames_x86_64[] =
{
"rax", "rdx", "rcx", "rbx",
@@ -8589,6 +8595,7 @@ init_dwarf_regnames_aarch64 (void)
dwarf_regnames = dwarf_regnames_aarch64;
dwarf_regnames_count = ARRAY_SIZE (dwarf_regnames_aarch64);
dwarf_regnames_lookup_func = regname_internal_by_table_only;
+ is_aarch64 = true;
}
static const char *const dwarf_regnames_s390[] =
@@ -8678,6 +8685,7 @@ void
init_dwarf_regnames_by_elf_machine_code (unsigned int e_machine)
{
dwarf_regnames_lookup_func = NULL;
+ is_aarch64 = false;
switch (e_machine)
{
@@ -8720,6 +8728,7 @@ init_dwarf_regnames_by_bfd_arch_and_mach (enum bfd_architecture arch,
unsigned long mach)
{
dwarf_regnames_lookup_func = NULL;
+ is_aarch64 = false;
switch (arch)
{
@@ -9955,7 +9964,7 @@ display_debug_frames (struct dwarf_section *section,
case DW_CFA_GNU_window_save:
if (! do_debug_frames_interp)
- printf (" DW_CFA_GNU_window_save\n");
+ printf (" %s\n", DW_CFA_GNU_window_save_name[is_aarch64]);
break;
case DW_CFA_GNU_args_size:
diff --git a/gas/testsuite/gas/aarch64/pac_ab_key.d b/gas/testsuite/gas/aarch64/pac_ab_key.d
index ea9cf2fb38a..5e7496a86bd 100644
--- a/gas/testsuite/gas/aarch64/pac_ab_key.d
+++ b/gas/testsuite/gas/aarch64/pac_ab_key.d
@@ -18,7 +18,7 @@ Contents of the .eh_frame section:
0+14 0+18 0+18 FDE cie=0+ pc=0+\.\.0+8
DW_CFA_advance_loc: 4 to 0+4
- DW_CFA_GNU_window_save
+ DW_CFA_AARCH64_negate_ra_state
DW_CFA_advance_loc: 4 to 0+8
DW_CFA_def_cfa_offset: 16
DW_CFA_offset: r29 \(x29\) at cfa-16
@@ -40,7 +40,7 @@ Contents of the .eh_frame section:
0+48 0+1(c|8) 0+1c FDE cie=0+30 pc=0+8\.\.0+10
DW_CFA_advance_loc: 4 to 0+c
- DW_CFA_GNU_window_save
+ DW_CFA_AARCH64_negate_ra_state
DW_CFA_advance_loc: 4 to 0+10
DW_CFA_def_cfa_offset: 16
DW_CFA_offset: r29 \(x29\) at cfa-16
diff --git a/gas/testsuite/gas/aarch64/pac_negate_ra_state.d b/gas/testsuite/gas/aarch64/pac_negate_ra_state.d
index cef533a7343..62717767608 100644
--- a/gas/testsuite/gas/aarch64/pac_negate_ra_state.d
+++ b/gas/testsuite/gas/aarch64/pac_negate_ra_state.d
@@ -15,7 +15,7 @@ Contents of the .eh_frame section:
0+14 0+18 0+18 FDE cie=0+ pc=0+\.\.0+8
DW_CFA_advance_loc: 4 to 0+4
- DW_CFA_GNU_window_save
+ DW_CFA_AARCH64_negate_ra_state
DW_CFA_advance_loc: 4 to 0+8
DW_CFA_def_cfa_offset: 16
DW_CFA_offset: r29 \(x29\) at cfa-16
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-07-21 7:07 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-21 7:07 [binutils-gdb] PR29390, DW_CFA_AARCH64_negate_ra_state vs. DW_CFA_GNU_window_save Alan Modra
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).