gas: Don't skip SFrame FDE if .cfi_register specifies RA w/o tracking

Do not skip SFrame FDE if .cfi_register specifies RA register without
RA tracking being actually used. Without RA tracking the register
contents can always be restored from the stack using the fixed
RA offset from CFA.

gas/
	* gen-sframe.c (sframe_xlate_do_register): Do not skip SFrame
	FDE if .cfi_register specifies RA register without RA tracking
	being used.

Signed-off-by: Jens Remus <jremus@linux.ibm.com>
This commit is contained in:
Jens Remus
2024-07-04 10:34:12 +02:00
parent 541d3b6458
commit df174a6b76

View File

@@ -1158,7 +1158,7 @@ sframe_xlate_do_register (struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_UNUSED,
stack trace information. */
if (cfi_insn->u.rr.reg1 == SFRAME_CFA_SP_REG
#ifdef SFRAME_FRE_RA_TRACKING
|| (cfi_insn->u.rr.reg1 == SFRAME_CFA_RA_REG)
|| (sframe_ra_tracking_p () && cfi_insn->u.rr.reg1 == SFRAME_CFA_RA_REG)
#endif
|| cfi_insn->u.rr.reg1 == SFRAME_CFA_FP_REG)
{