[COMMITTED,V7 0/9] Add experimental SCFI support for aarch64
Indu Bhagat
indu.bhagat@oracle.com
Fri Jul 19 04:06:58 GMT 2024
Hi,
Sending the committed version to the list.
Thanks!
Indu Bhagat (9):
gas: scfi: make scfi_state_restore_reg function more precise
include: opcodes: aarch64: define new subclasses
opcodes: aarch64: add flags to denote subclasses of ldst insns
opcodes: aarch64: add flags to denote subclasses of arithmetic insns
opcodes: aarch64: add flags to denote subclasses of uncond branches
opcodes: aarch64: denote subclasses for insns of iclass dp_2src
opcodes: aarch64: enforce checks on subclass flags in aarch64-gen.c
gas: aarch64: add experimental support for SCFI
gas: aarch64: testsuite: add new tests for SCFI
gas/config/tc-aarch64-ginsn.c | 963 ++++++++++++++++++
gas/config/tc-aarch64.c | 15 +
gas/config/tc-aarch64.h | 21 +
gas/scfi.c | 9 +-
gas/testsuite/gas/scfi/README | 2 +-
.../gas/scfi/aarch64/ginsn-arith-1.l | 40 +
.../gas/scfi/aarch64/ginsn-arith-1.s | 19 +
gas/testsuite/gas/scfi/aarch64/ginsn-cofi-1.l | 30 +
gas/testsuite/gas/scfi/aarch64/ginsn-cofi-1.s | 16 +
gas/testsuite/gas/scfi/aarch64/ginsn-ldst-1.l | 101 ++
gas/testsuite/gas/scfi/aarch64/ginsn-ldst-1.s | 53 +
gas/testsuite/gas/scfi/aarch64/ginsn-misc-1.l | 48 +
gas/testsuite/gas/scfi/aarch64/ginsn-misc-1.s | 33 +
.../gas/scfi/aarch64/scfi-aarch64.exp | 74 ++
.../gas/scfi/aarch64/scfi-callee-saved-fp-1.d | 57 ++
.../gas/scfi/aarch64/scfi-callee-saved-fp-1.l | 2 +
.../gas/scfi/aarch64/scfi-callee-saved-fp-1.s | 50 +
.../gas/scfi/aarch64/scfi-callee-saved-fp-2.d | 57 ++
.../gas/scfi/aarch64/scfi-callee-saved-fp-2.l | 2 +
.../gas/scfi/aarch64/scfi-callee-saved-fp-2.s | 50 +
gas/testsuite/gas/scfi/aarch64/scfi-cb-1.d | 20 +
gas/testsuite/gas/scfi/aarch64/scfi-cb-1.l | 2 +
gas/testsuite/gas/scfi/aarch64/scfi-cb-1.s | 14 +
gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.d | 31 +
gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.l | 2 +
gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.s | 46 +
gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.d | 40 +
gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.l | 2 +
gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.s | 42 +
gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.d | 32 +
gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.l | 2 +
gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.s | 34 +
gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.d | 41 +
gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.l | 2 +
gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.s | 41 +
.../gas/scfi/aarch64/scfi-cond-br-1.d | 20 +
.../gas/scfi/aarch64/scfi-cond-br-1.l | 2 +
.../gas/scfi/aarch64/scfi-cond-br-1.s | 13 +
gas/testsuite/gas/scfi/aarch64/scfi-diag-1.l | 2 +
gas/testsuite/gas/scfi/aarch64/scfi-diag-1.s | 6 +
gas/testsuite/gas/scfi/aarch64/scfi-diag-2.l | 3 +
gas/testsuite/gas/scfi/aarch64/scfi-diag-2.s | 25 +
gas/testsuite/gas/scfi/aarch64/scfi-diag-3.l | 3 +
gas/testsuite/gas/scfi/aarch64/scfi-diag-3.s | 8 +
gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.d | 59 ++
gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.l | 2 +
gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.s | 52 +
gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.d | 33 +
gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.l | 2 +
gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.s | 26 +
.../gas/scfi/aarch64/scfi-ldstnap-1.d | 39 +
.../gas/scfi/aarch64/scfi-ldstnap-1.l | 2 +
.../gas/scfi/aarch64/scfi-ldstnap-1.s | 30 +
gas/testsuite/gas/scfi/aarch64/scfi-strp-1.d | 39 +
gas/testsuite/gas/scfi/aarch64/scfi-strp-1.l | 2 +
gas/testsuite/gas/scfi/aarch64/scfi-strp-1.s | 37 +
gas/testsuite/gas/scfi/aarch64/scfi-strp-2.d | 35 +
gas/testsuite/gas/scfi/aarch64/scfi-strp-2.l | 2 +
gas/testsuite/gas/scfi/aarch64/scfi-strp-2.s | 30 +
.../gas/scfi/aarch64/scfi-unsupported-1.l | 4 +
.../gas/scfi/aarch64/scfi-unsupported-1.s | 31 +
.../gas/scfi/aarch64/scfi-unsupported-2.l | 2 +
.../gas/scfi/aarch64/scfi-unsupported-2.s | 8 +
include/opcode/aarch64.h | 35 +-
opcodes/aarch64-gen.c | 19 +
opcodes/aarch64-tbl.h | 202 ++--
66 files changed, 2658 insertions(+), 108 deletions(-)
create mode 100644 gas/config/tc-aarch64-ginsn.c
create mode 100644 gas/testsuite/gas/scfi/aarch64/ginsn-arith-1.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/ginsn-arith-1.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/ginsn-cofi-1.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/ginsn-cofi-1.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/ginsn-ldst-1.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/ginsn-ldst-1.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/ginsn-misc-1.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/ginsn-misc-1.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-aarch64.exp
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-1.d
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-1.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-1.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-2.d
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-2.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-2.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cb-1.d
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cb-1.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cb-1.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.d
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.d
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.d
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.d
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cond-br-1.d
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cond-br-1.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-cond-br-1.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-diag-1.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-diag-1.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-diag-2.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-diag-2.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-diag-3.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-diag-3.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.d
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.d
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-ldstnap-1.d
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-ldstnap-1.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-ldstnap-1.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-strp-1.d
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-strp-1.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-strp-1.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-strp-2.d
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-strp-2.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-strp-2.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-unsupported-1.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-unsupported-1.s
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-unsupported-2.l
create mode 100644 gas/testsuite/gas/scfi/aarch64/scfi-unsupported-2.s
--
2.43.0
More information about the Binutils
mailing list