[binutils-gdb/jremus/sframe-v3-s390x] TEST: s390: sframe: Represent .cfi_register FP/RA using SFrame V2 encoding

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


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

commit 1e07492e6d12ecdeb33d9195cb2d0d09872d0e5b
Author: Jens Remus <jremus@linux.ibm.com>
Date:   Mon Dec 15 15:13:46 2025 +0100

    TEST: s390: sframe: Represent .cfi_register FP/RA using SFrame V2 encoding
    
    Use the SFrame V2 encoding of DWARF register numbers as FP/RA offset,
    where the register number is shifted to the left by one.
    
    This is for testing and .sframe section size comparison purposes only.
    
    Signed-off-by: Jens Remus <jremus@linux.ibm.com>

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

diff --git a/gas/gen-sframe.c b/gas/gen-sframe.c
index d794f2a79ec..1166ce68aff 100644
--- a/gas/gen-sframe.c
+++ b/gas/gen-sframe.c
@@ -1476,11 +1476,11 @@ s390_sframe_xlate_do_register (struct sframe_xlate_ctx *xlate_ctx,
      numbers, as offsets from CFA are always a multiple of -8 on s390x.  */
   if (cfi_insn->u.rr.reg1 == SFRAME_CFA_FP_REG)
     sframe_fre_set_fp_track (cur_fre,
-			     SFRAME_V3_S390X_OFFSET_ENCODE_REGNUM (cfi_insn->u.rr.reg2));
+			     SFRAME_V2_S390X_OFFSET_ENCODE_REGNUM (cfi_insn->u.rr.reg2));
   else if (sframe_ra_tracking_p ()
 	   && cfi_insn->u.rr.reg1 == SFRAME_CFA_RA_REG)
     sframe_fre_set_ra_track (cur_fre,
-			     SFRAME_V3_S390X_OFFSET_ENCODE_REGNUM (cfi_insn->u.rr.reg2));
+			     SFRAME_V2_S390X_OFFSET_ENCODE_REGNUM (cfi_insn->u.rr.reg2));
 
   return SFRAME_XLATE_OK;
 }
diff --git a/libsframe/sframe-dump.c b/libsframe/sframe-dump.c
index 9cbb52254dc..d357b8b486c 100644
--- a/libsframe/sframe-dump.c
+++ b/libsframe/sframe-dump.c
@@ -123,7 +123,7 @@ sframe_s390x_offset_regnum_p (int32_t offset, uint8_t ver)
   if (ver == SFRAME_VERSION_2)
     return SFRAME_V2_S390X_OFFSET_IS_REGNUM (offset);
   else if (ver == SFRAME_VERSION_3)
-    return SFRAME_V3_S390X_OFFSET_IS_REGNUM (offset);
+    return SFRAME_V2_S390X_OFFSET_IS_REGNUM (offset);
   else
     /* No other version is supported yet.  */
     sframe_assert (false);
@@ -135,7 +135,7 @@ sframe_s390x_offset_decode_regnum (int32_t offset, uint8_t ver)
   if (ver == SFRAME_VERSION_2)
     return SFRAME_V2_S390X_OFFSET_DECODE_REGNUM (offset);
   else if (ver == SFRAME_VERSION_3)
-    return SFRAME_V3_S390X_OFFSET_DECODE_REGNUM (offset);
+    return SFRAME_V2_S390X_OFFSET_DECODE_REGNUM (offset);
   else
     /* No other version is supported yet.  */
     sframe_assert (false);


More information about the Binutils-cvs mailing list