aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJens Remus <jremus@linux.ibm.com>2024-07-04 10:34:12 +0200
committerJens Remus <jremus@linux.ibm.com>2024-07-04 10:34:12 +0200
commitdf174a6b760ac5c66ee62ecb872c760ae21fd4cd (patch)
treefb252b82436a114abd719832f9dfebc0b835c5ee /gas
parent541d3b645853ef2e392a04089702bf6b4b594176 (diff)
downloadbinutils-df174a6b760ac5c66ee62ecb872c760ae21fd4cd.zip
binutils-df174a6b760ac5c66ee62ecb872c760ae21fd4cd.tar.gz
binutils-df174a6b760ac5c66ee62ecb872c760ae21fd4cd.tar.bz2
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>
Diffstat (limited to 'gas')
-rw-r--r--gas/gen-sframe.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gas/gen-sframe.c b/gas/gen-sframe.c
index 2222d76..31f2e51 100644
--- a/gas/gen-sframe.c
+++ b/gas/gen-sframe.c
@@ -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)
{