aarch64 DWARF: add new CFI directive for PAuth_LR

This patch adds a new CFI directive (cfi_negate_ra_state_with_pc) which
set an additional bit in the RA state to inform that RA was signed with
SP but also PC as an additional diversifier.

RA state | Description
0b00     | Return address not signed (default if no cfi_negate_ra_state*)
0b01     | Return address signed with SP (cfi_negate_ra_state)
0b10     | Invalid state
0b11     | Return address signed with SP+PC (cfi_negate_ra_state_with_pc)

Approved-by: Indu Bhagat <indu.bhagat@oracle.com>
Approved-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
Matthieu Longo
2024-11-25 12:17:56 +00:00
parent 694cccee05
commit c4ab4dd7bd
5 changed files with 22 additions and 1 deletions

View File

@@ -10408,6 +10408,11 @@ display_debug_frames (struct dwarf_section *section,
fc->pc_begin += ofs;
break;
case DW_CFA_AARCH64_negate_ra_state_with_pc:
if (! do_debug_frames_interp)
printf (" DW_CFA_AARCH64_negate_ra_state_with_pc\n");
break;
case DW_CFA_GNU_window_save:
if (! do_debug_frames_interp)
printf (" %s\n", DW_CFA_GNU_window_save_name[is_aarch64]);