]> git.ipfire.org Git - thirdparty/gcc.git/commit
dwarf2: store the RA state in CFI row
authorMatthieu Longo <matthieu.longo@arm.com>
Mon, 23 Sep 2024 14:35:07 +0000 (15:35 +0100)
committerTamar Christina <tamar.christina@arm.com>
Mon, 23 Sep 2024 14:37:45 +0000 (15:37 +0100)
commit2b7971448f122317ed012586f9f73ccc0537deb2
treed86887fcc2426607fb129b2fc6896106c28ef770
parentfb475d3f25943beffac8e9c0c78247bad75287a1
dwarf2: store the RA state in CFI row

On AArch64, the RA state informs the unwinder whether the return address
is mangled and how, or not. This information is encoded in a boolean in
the CFI row. This binary approach prevents from expressing more complex
configuration, as it is the case with PAuth_LR introduced in Armv9.5-A.

This patch addresses this limitation by replacing the boolean by an enum.

gcc/ChangeLog:

* dwarf2cfi.cc
(struct dw_cfi_row): Declare a new enum type to replace ra_mangled.
(cfi_row_equal_p): Use ra_state instead of ra_mangled.
(dwarf2out_frame_debug_cfa_negate_ra_state): Same.
(change_cfi_row): Same.
gcc/dwarf2cfi.cc