binutils-gdb/include
Indu Bhagat c1929fda66 [SFrame-V3] sframe: s390: gas: testsuite: enable flex FDE for s390x
This commit amalgamates a patch set proposed by Jens Remus to enable the
SFrame Version 3 Flexible FDE Type (SFRAME_FDE_TYPE_FLEX) generation for
the s390x ABI.

Previously, s390x relied on architecture-specific encoding (shifting register
numbers into offset fields) to represent register recovery rules.  This limited
the complexity of CFI that could be supported.  With Flex FDE enabled:
  - s390x can now represent .cfi_def_cfa using non-SP/FP registers.
  - The architecture-specific function s390_sframe_xlate_do_register () in GAS
    is replaced by the generic Flex FDE generation path.
  - The SFrame V3 specific macros for s390x register encoding are removed
    from libsframe/include, as the generic Flex FDE format handles explicit
    register columns natively.

The testsuite is updated to replace negative tests (which asserted
warnings or empty SFrame generation for these patterns) with positive
tests verifying valid Flex FDE generation.

Co-authored-by: Jens Remus <jremus@linux.ibm.com>

gas/
	* config/tc-s390.c (s390_support_flex_fde_p): Return true to
	enable Flex FDE generation.
	* gen-sframe.c (s390_sframe_xlate_do_register): Disable s390x
	specific implementation.
	(sframe_xlate_do_register): Invoke generic Flex FDE path now
	that flex FDE generation is supported.
gas/testsuite/
	* gas/cfi-sframe/cfi-sframe-s390x-err-1.d: Removed.
	* gas/cfi-sframe/cfi-sframe-s390x-err-1.s: Moved to...
	* gas/cfi-sframe/cfi-sframe-s390x-non-spfp-cfa-1.s: ...here.
	* gas/cfi-sframe/cfi-sframe-s390x-err-2.d: Removed.
	* gas/cfi-sframe/cfi-sframe-s390x-err-2.s: Moved to...
	* gas/cfi-sframe/cfi-sframe-s390x-non-spfp-cfa-2.s: ...here.
	* gas/cfi-sframe/cfi-sframe-s390x-fpra-register-1.d: Update to
	expect Flex FDE output.
	* gas/cfi-sframe/cfi-sframe-s390x-fpra-register-2.d: Likewise.
	* gas/cfi-sframe/cfi-sframe.exp: Run renamed tests.
include/
	* sframe.h (SFRAME_V3_S390X_OFFSET_IS_REGNUM): Remove.
	(SFRAME_V3_S390X_OFFSET_ENCODE_REGNUM): Remove.
	(SFRAME_V3_S390X_OFFSET_DECODE_REGNUM): Remove.
libsframe/
	* sframe-dump.c (sframe_s390x_offset_regnum_p): Return false
	for SFrame V3.
	(sframe_s390x_offset_decode_regnum): Remove V3 support.
2026-01-15 17:02:28 -08:00
..
aout Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
cgen Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
coff Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
elf RISC-V: Add second-pass relaxation for JAL to C.J/C.JAL 2026-01-15 12:04:57 +08:00
gdb Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
mach-o Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
opcode aarch64: Add support for POE2 PLBI instruction 2026-01-05 17:50:55 +00:00
sim Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
som Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
vms Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
alloca-conf.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
ansidecl.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
bfdlink.h [SFrame-V3] ld: add --discard-sframe command line option 2026-01-15 17:02:27 -08:00
binary-io.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
ChangeLog Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
ChangeLog-0415 binutils ChangeLog rotation 2016-01-01 22:59:17 +10:30
ChangeLog-2016 ChangeLog rotation 2017-01-02 13:55:05 +10:30
ChangeLog-2017 ChangeLog rotation 2018-01-03 17:49:42 +10:30
ChangeLog-2018 ChangeLog rotation 2019-01-01 21:25:40 +10:30
ChangeLog-2019 ChangeLog rotation 2020-01-01 18:12:08 +10:30
ChangeLog-2020 ChangeLog rotation 2021-01-01 10:31:02 +10:30
ChangeLog-9103 Add copyright notices 2012-12-10 12:48:03 +00:00
collectorAPI.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
COPYING
COPYING3
ctf-api.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
ctf.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
demangle.h Sync libiberty sources with gcc master version 2026-01-07 11:33:07 +00:00
diagnostics.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
dis-asm.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
doubly-linked-list.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
dwarf2.def Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
dwarf2.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
dyn-string.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
environ.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
fibheap.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
filenames.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
floatformat.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
fnmatch.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
fopen-bin.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
fopen-same.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
fopen-vms.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
gcc-c-fe.def Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
gcc-c-interface.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
gcc-cp-fe.def Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
gcc-cp-interface.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
gcc-interface.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
getopt.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
hashtab.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
hp-symtab.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
leb128.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
libcollector.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
libfcollector.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
libiberty.h Sync libiberty sources with gcc master version 2026-01-07 11:33:07 +00:00
longlong.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
lto-symtab.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
MAINTAINERS Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
md5.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
oasys.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
objalloc.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
obstack.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
os9k.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
partition.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
plugin-api.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
safe-ctype.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
same-inode.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
sframe-api.h [SFrame-V3] bfd: ld: sframe: avoid unnecessary decoding of SFrame FREs at link time 2026-01-15 17:02:26 -08:00
sframe-internal.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
sframe.h [SFrame-V3] sframe: s390: gas: testsuite: enable flex FDE for s390x 2026-01-15 17:02:28 -08:00
sha1.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
simple-object.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
sort.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
splay-tree.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
symcat.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
timeval-utils.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
vtv-change-permission.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
xregex.h merge from gcc 2011-07-25 17:11:48 +00:00
xregex2.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
xtensa-config.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
xtensa-dynconfig.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
xtensa-isa-internal.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30
xtensa-isa.h Update year range in copyright notice of binutils files 2026-01-01 23:22:14 +10:30