mirror of
https://github.com/bminor/binutils-gdb.git
synced 2026-02-05 03:51:30 +00:00
Revert "gas: Don't skip SFrame FDE if .cfi_register specifies RA w/o tracking"
This reverts commitdf174a6b76. commitdf174a6b76Date: Thu Jul 4 10:34:12 2024 +0200 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. Even for ABI/arch without RA tracking, there may be instances where user may specify '.cfi_register RA, reg'. This needs to be caught, skipping this from SFrame generation may not be correct. This may be done in certain hand-written asm sequences where the user needs to manipulate the return to a certain function. No testcase is being added ATM because in SFrame V3, a new FDE type can be used to represent such cases (A new test case will be added then). Reviewed-by: Jens Remus <jremus@linux.ibm.com>
This commit is contained in:
@@ -1287,7 +1287,7 @@ sframe_xlate_do_register (struct sframe_xlate_ctx *xlate_ctx,
|
||||
instruction can be safely skipped without sacrificing the asynchronicity of
|
||||
stack trace information. */
|
||||
if (cfi_insn->u.rr.reg1 == SFRAME_CFA_FP_REG
|
||||
|| (sframe_ra_tracking_p () && cfi_insn->u.rr.reg1 == SFRAME_CFA_RA_REG)
|
||||
|| cfi_insn->u.rr.reg1 == SFRAME_CFA_RA_REG
|
||||
/* Ignore SP reg, as it can be recovered from the CFA tracking info. */
|
||||
)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user