Re: [PATCH, DWARF] Add DW_CFA_AARCH64_negate_ra_state to dwarf2.def/h and dwarfnames.c
On Thu, Aug 10, 2017 at 6:39 PM, Jiong Wang wrote: > Hi, > > A new vendor CFA DW_CFA_AARCH64_negate_ra_state was introduced for > ARMv8.3-A > return address signing, it is multiplexing DW_CFA_GNU_window_save in CFA > vendor > extension space. > > This patch adds necessary code to make it available to external, the GDB > patch (https://sourceware.org/ml/gdb-patches/2017-08/msg00215.html) is > intended > to use it. > > A new DW_CFA_DUP for it is added in dwarf2.def. The use of DW_CFA_DUP is > to > avoid duplicated case value issue when included in libiberty/dwarfnames. > > Native x86 builds OK to make sure no macro expanding errors. > > OK for trunk? OK. Jason
Re: [Ping^2][PATCH, DWARF] Add DW_CFA_AARCH64_negate_ra_state to dwarf2.def/h and dwarfnames.c
On 09/05/2017 09:05 PM, Jiong Wang wrote: > 2017-08-22 9:18 GMT+01:00 Jiong Wang : >> On 10/08/17 17:39, Jiong Wang wrote: >>> >>> Hi, >>> >>> A new vendor CFA DW_CFA_AARCH64_negate_ra_state was introduced for >>> ARMv8.3-A >>> return address signing, it is multiplexing DW_CFA_GNU_window_save in CFA >>> vendor >>> extension space. >>> >>> This patch adds necessary code to make it available to external, the GDB >>> patch (https://sourceware.org/ml/gdb-patches/2017-08/msg00215.html) is >>> intended >>> to use it. >>> >>> A new DW_CFA_DUP for it is added in dwarf2.def. The use of DW_CFA_DUP >>> is to >>> avoid duplicated case value issue when included in libiberty/dwarfnames. >>> >>> Native x86 builds OK to make sure no macro expanding errors. >>> >>> OK for trunk? >>> >>> 2017-08-10 Jiong Wang >>> >>> include/ >>> * dwarf2.def (DW_CFA_AARCH64_negate_ra_state): New DW_CFA_DUP. >>> * dwarf2.h (DW_CFA_DUP): New define. >>> >>> libiberty/ >>> * dwarfnames.c (DW_CFA_DUP): New define. >>> I'd like to add a +1 vote for this patch. I was confused more than once in the iterations of the pending gdb patch that were adding references to "DW_CFA_GNU_window_save" in Aarch64 code that has absolutely nothing to do with SPARC register windows, and asked Jiong whether we could add an Aarch64-specific name for the constant. Thanks, Pedro Alves
[Ping^2][PATCH, DWARF] Add DW_CFA_AARCH64_negate_ra_state to dwarf2.def/h and dwarfnames.c
2017-08-22 9:18 GMT+01:00 Jiong Wang : > On 10/08/17 17:39, Jiong Wang wrote: >> >> Hi, >> >> A new vendor CFA DW_CFA_AARCH64_negate_ra_state was introduced for >> ARMv8.3-A >> return address signing, it is multiplexing DW_CFA_GNU_window_save in CFA >> vendor >> extension space. >> >> This patch adds necessary code to make it available to external, the GDB >> patch (https://sourceware.org/ml/gdb-patches/2017-08/msg00215.html) is >> intended >> to use it. >> >> A new DW_CFA_DUP for it is added in dwarf2.def. The use of DW_CFA_DUP >> is to >> avoid duplicated case value issue when included in libiberty/dwarfnames. >> >> Native x86 builds OK to make sure no macro expanding errors. >> >> OK for trunk? >> >> 2017-08-10 Jiong Wang >> >> include/ >> * dwarf2.def (DW_CFA_AARCH64_negate_ra_state): New DW_CFA_DUP. >> * dwarf2.h (DW_CFA_DUP): New define. >> >> libiberty/ >> * dwarfnames.c (DW_CFA_DUP): New define. >> > > Ping~ Ping^2
[Ping~][PATCH, DWARF] Add DW_CFA_AARCH64_negate_ra_state to dwarf2.def/h and dwarfnames.c
On 10/08/17 17:39, Jiong Wang wrote: Hi, A new vendor CFA DW_CFA_AARCH64_negate_ra_state was introduced for ARMv8.3-A return address signing, it is multiplexing DW_CFA_GNU_window_save in CFA vendor extension space. This patch adds necessary code to make it available to external, the GDB patch (https://sourceware.org/ml/gdb-patches/2017-08/msg00215.html) is intended to use it. A new DW_CFA_DUP for it is added in dwarf2.def. The use of DW_CFA_DUP is to avoid duplicated case value issue when included in libiberty/dwarfnames. Native x86 builds OK to make sure no macro expanding errors. OK for trunk? 2017-08-10 Jiong Wang include/ * dwarf2.def (DW_CFA_AARCH64_negate_ra_state): New DW_CFA_DUP. * dwarf2.h (DW_CFA_DUP): New define. libiberty/ * dwarfnames.c (DW_CFA_DUP): New define. Ping~
[PATCH, DWARF] Add DW_CFA_AARCH64_negate_ra_state to dwarf2.def/h and dwarfnames.c
Hi, A new vendor CFA DW_CFA_AARCH64_negate_ra_state was introduced for ARMv8.3-A return address signing, it is multiplexing DW_CFA_GNU_window_save in CFA vendor extension space. This patch adds necessary code to make it available to external, the GDB patch (https://sourceware.org/ml/gdb-patches/2017-08/msg00215.html) is intended to use it. A new DW_CFA_DUP for it is added in dwarf2.def. The use of DW_CFA_DUP is to avoid duplicated case value issue when included in libiberty/dwarfnames. Native x86 builds OK to make sure no macro expanding errors. OK for trunk? 2017-08-10 Jiong Wang include/ * dwarf2.def (DW_CFA_AARCH64_negate_ra_state): New DW_CFA_DUP. * dwarf2.h (DW_CFA_DUP): New define. libiberty/ * dwarfnames.c (DW_CFA_DUP): New define. diff --git a/include/dwarf2.def b/include/dwarf2.def index a91e9439cd82f3bb9fdddc14904114e5490c1af6..2a3b23fef873db9bb2498cd28c4fafc72e6a234f 100644 --- a/include/dwarf2.def +++ b/include/dwarf2.def @@ -778,6 +778,7 @@ DW_CFA (DW_CFA_MIPS_advance_loc8, 0x1d) /* GNU extensions. NOTE: DW_CFA_GNU_window_save is multiplexed on Sparc and AArch64. */ DW_CFA (DW_CFA_GNU_window_save, 0x2d) +DW_CFA_DUP (DW_CFA_AARCH64_negate_ra_state, 0x2d) DW_CFA (DW_CFA_GNU_args_size, 0x2e) DW_CFA (DW_CFA_GNU_negative_offset_extended, 0x2f) diff --git a/include/dwarf2.h b/include/dwarf2.h index 14b6f22e39e2f2f8cadb05009bfd10fafa9ea07c..a2e022dbdb35c18bb591e0f00930978846b82c01 100644 --- a/include/dwarf2.h +++ b/include/dwarf2.h @@ -52,6 +52,7 @@ #define DW_ATE(name, value) , name = value #define DW_ATE_DUP(name, value) , name = value #define DW_CFA(name, value) , name = value +#define DW_CFA_DUP(name, value) , name = value #define DW_IDX(name, value) , name = value #define DW_IDX_DUP(name, value) , name = value @@ -104,6 +105,7 @@ #undef DW_ATE #undef DW_ATE_DUP #undef DW_CFA +#undef DW_CFA_DUP #undef DW_IDX #undef DW_IDX_DUP diff --git a/libiberty/dwarfnames.c b/libiberty/dwarfnames.c index e58d03c3a3d814f3a271edb4689c6306a2f958f0..dacd78dbaa9b33d6e9fdf35330cdc446dcf4f76c 100644 --- a/libiberty/dwarfnames.c +++ b/libiberty/dwarfnames.c @@ -75,6 +75,7 @@ Boston, MA 02110-1301, USA. */ #define DW_ATE(name, value) case name: return # name ; #define DW_ATE_DUP(name, value) #define DW_CFA(name, value) case name: return # name ; +#define DW_CFA_DUP(name, value) #define DW_IDX(name, value) case name: return # name ; #define DW_IDX_DUP(name, value) @@ -105,5 +106,6 @@ Boston, MA 02110-1301, USA. */ #undef DW_ATE #undef DW_ATE_DUP #undef DW_CFA +#undef DW_CFA_DUP #undef DW_IDX #undef DW_IDX_DUP