[binutils-gdb/jremus/sframe-v3-s390x] libsframe: textual dump of fde type SFRAME_FDE_TYPE_FLEX_TOPMOST_FRAME

Jens Remus jremus@sourceware.org
Mon Dec 15 16:25:41 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f102ed875f0a543d6c4db5d0e0849c803202c3aa

commit f102ed875f0a543d6c4db5d0e0849c803202c3aa
Author: Jens Remus <jremus@linux.ibm.com>
Date:   Fri Dec 12 16:26:43 2025 +0100

    libsframe: textual dump of fde type SFRAME_FDE_TYPE_FLEX_TOPMOST_FRAME
    
    Signed-off-by: Jens Remus <jremus@linux.ibm.com>

Diff:
---
 libsframe/sframe-dump.c | 10 ++++++++--
 libsframe/sframe.c      |  3 +--
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/libsframe/sframe-dump.c b/libsframe/sframe-dump.c
index 9cbb52254dc..20b6fcee3ff 100644
--- a/libsframe/sframe-dump.c
+++ b/libsframe/sframe-dump.c
@@ -442,9 +442,15 @@ dump_sframe_func_fre_flex_topmost (const sframe_decoder_ctx *sfd_ctx,
 
       /* Dump RA info.
 	 Even if an ABI does not track RA offset, e.g., AMD64, for flex topmost
-	 frame, it may have RA recovery from register.  Else, display 'f'.  */
+	 frame, it may have RA recovery from register.  */
       if (!ra_reg_data && !ra_offset)
-	strcpy (temp, "f");
+	{
+	  if (sframe_decoder_get_fixed_ra_offset (sfd_ctx)
+	      != SFRAME_CFA_FIXED_RA_INVALID)
+	    strcpy (temp, "f");
+	  else
+	    strcpy (temp, "U");
+	}
       else
 	sframe_format_fre_disp (temp, sizeof (temp), abi_arch, ra_reg,
 				ra_reg_p, ra_offset, ra_deref_p);
diff --git a/libsframe/sframe.c b/libsframe/sframe.c
index 66bba69b37a..a567aad9a6d 100644
--- a/libsframe/sframe.c
+++ b/libsframe/sframe.c
@@ -1123,8 +1123,7 @@ sframe_fre_get_cfa_offset (const sframe_decoder_ctx *dctx,
   int32_t offset = sframe_get_fre_offset (fre, idx, &err);
 
   /* For s390x undo adjustment of CFA offset (to enable 8-bit offsets).  */
-  if (!err && !flex_p
-      && sframe_decoder_get_abi_arch (dctx) == SFRAME_ABI_S390X_ENDIAN_BIG)
+  if (!err && sframe_decoder_get_abi_arch (dctx) == SFRAME_ABI_S390X_ENDIAN_BIG)
     offset = SFRAME_V2_S390X_CFA_OFFSET_DECODE (offset);
 
   if (errp)


More information about the Binutils-cvs mailing list