Add DW_CFA_AARCH64_negate_ra_state to dwarf2.def/h and dwarfnames.c
authorJiong Wang <jiong.wang@arm.com>
Tue, 12 Sep 2017 16:39:59 +0000 (16:39 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Tue, 12 Sep 2017 16:39:59 +0000 (16:39 +0000)
  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.

Committed on behalf of 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.

From-SVN: r252037

include/ChangeLog
include/dwarf2.def
include/dwarf2.h
libiberty/ChangeLog
libiberty/dwarfnames.c

index 2171290e4b80ab6b1bf3a1d1df120f6bc13c1f41..c7ce2592979733a7316562553fe7ab0e2d121a5b 100644 (file)
@@ -1,3 +1,8 @@
+2017-09-12  Jiong Wang  <jiong.wang@arm.com>
+
+       * dwarf2.def (DW_CFA_AARCH64_negate_ra_state): New DW_CFA_DUP.
+       * dwarf2.h (DW_CFA_DUP): New define.
+
 2017-08-21  Richard Biener  <rguenther@suse.de>
 
        * simple-object.h (simple_object_copy_lto_debug_sections): New
index a91e9439cd82f3bb9fdddc14904114e5490c1af6..2a3b23fef873db9bb2498cd28c4fafc72e6a234f 100644 (file)
@@ -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)
 
index 14b6f22e39e2f2f8cadb05009bfd10fafa9ea07c..a2e022dbdb35c18bb591e0f00930978846b82c01 100644 (file)
@@ -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
 
 #undef DW_ATE
 #undef DW_ATE_DUP
 #undef DW_CFA
+#undef DW_CFA_DUP
 #undef DW_IDX
 #undef DW_IDX_DUP
 
index 8c469710f8e8fd36820a0cf56fb92d434418278d..ca2b1a0aca289f431df32d7c6c1e6f8a4010d6c1 100644 (file)
@@ -1,3 +1,7 @@
+2017-09-12  Jiong Wang  <jiong.wang@arm.com>
+
+       * dwarfnames.c (DW_CFA_DUP): New define.
+
 2017-09-01  Martin Liska  <mliska@suse.cz>
 
        * simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
index e58d03c3a3d814f3a271edb4689c6306a2f958f0..dacd78dbaa9b33d6e9fdf35330cdc446dcf4f76c 100644 (file)
@@ -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