Skip to content

Commit f47edbb

Browse files
author
wilco
committed
Add DW_CFA_AARCH64_negate_ra_state to dwarf2.def/h and dwarfnames.c
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@252037 138bc75d-0d04-0410-961f-82ee72b054a4
1 parent 04c83f1 commit f47edbb

File tree

5 files changed

+14
-0
lines changed

5 files changed

+14
-0
lines changed

include/ChangeLog

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
2017-09-12 Jiong Wang <[email protected]>
2+
3+
* dwarf2.def (DW_CFA_AARCH64_negate_ra_state): New DW_CFA_DUP.
4+
* dwarf2.h (DW_CFA_DUP): New define.
5+
16
2017-08-21 Richard Biener <[email protected]>
27

38
* simple-object.h (simple_object_copy_lto_debug_sections): New

include/dwarf2.def

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -778,6 +778,7 @@ DW_CFA (DW_CFA_MIPS_advance_loc8, 0x1d)
778778
/* GNU extensions.
779779
NOTE: DW_CFA_GNU_window_save is multiplexed on Sparc and AArch64. */
780780
DW_CFA (DW_CFA_GNU_window_save, 0x2d)
781+
DW_CFA_DUP (DW_CFA_AARCH64_negate_ra_state, 0x2d)
781782
DW_CFA (DW_CFA_GNU_args_size, 0x2e)
782783
DW_CFA (DW_CFA_GNU_negative_offset_extended, 0x2f)
783784

include/dwarf2.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
#define DW_ATE(name, value) , name = value
5353
#define DW_ATE_DUP(name, value) , name = value
5454
#define DW_CFA(name, value) , name = value
55+
#define DW_CFA_DUP(name, value) , name = value
5556
#define DW_IDX(name, value) , name = value
5657
#define DW_IDX_DUP(name, value) , name = value
5758

@@ -104,6 +105,7 @@
104105
#undef DW_ATE
105106
#undef DW_ATE_DUP
106107
#undef DW_CFA
108+
#undef DW_CFA_DUP
107109
#undef DW_IDX
108110
#undef DW_IDX_DUP
109111

libiberty/ChangeLog

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
2017-09-12 Jiong Wang <[email protected]>
2+
3+
* dwarfnames.c (DW_CFA_DUP): New define.
4+
15
2017-09-01 Martin Liska <[email protected]>
26

37
* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):

libiberty/dwarfnames.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ Boston, MA 02110-1301, USA. */
7575
#define DW_ATE(name, value) case name: return # name ;
7676
#define DW_ATE_DUP(name, value)
7777
#define DW_CFA(name, value) case name: return # name ;
78+
#define DW_CFA_DUP(name, value)
7879
#define DW_IDX(name, value) case name: return # name ;
7980
#define DW_IDX_DUP(name, value)
8081

@@ -105,5 +106,6 @@ Boston, MA 02110-1301, USA. */
105106
#undef DW_ATE
106107
#undef DW_ATE_DUP
107108
#undef DW_CFA
109+
#undef DW_CFA_DUP
108110
#undef DW_IDX
109111
#undef DW_IDX_DUP

0 commit comments

Comments
 (0)