[PATCH v6 0/4] aarch64: Add support for POE2 extension
Srinath Parvathaneni
srinath.parvathaneni@arm.com
Wed Dec 31 19:12:34 GMT 2025
Changes in v5 -> v6:
The series has been rebased on the latest master.
PATCH 1/4:
* Replaced strcasecmp with strncasecmp for matching the "nb"
string and updated the corresponding conditional logic.
* Replaced set_syntax_error with set_default_error.
* Added x0 checks to the second operand in poe2*.s tests and
updated the associated *.d and *.l files.
* Updated the error message for NOT_BALANCED_17.
PATCH 2/4:
* Added a second #as invocation to the poe2-sysreg-1.d testcase
and dropped poe2-sysreg-2.d.
* Updated the counter logic in poe2-sysreg-1.s using the .irp
directive.
* Manually verified all macro expansions against the system
registers defined in aarch64-sys-regs.def, and cross-checked
the output with Clang.
PATCH 3/4:
* Updated the error message for NOT_BALANCED_10.
* Refined the conditional logic to avoid updating backtrack_pos
when processing the first operand and the optional argument is
not present.
PATCH 4/4:
* No changes, previously approved.
Hi,
The following patch series add support for POE2 extension.
This is done by adding support for feature FEAT_S1POE2 (+poe2 flag) to
support TCHANGE{F/B} instructions and all the system registers. Also
adds support for feature FEAT_TEV (+tev flag) to support TENTER/TEXIT
instructions.
Also adds the suport for PLBI instructions and corresponding system
registers.
Srinath Parvathaneni (4):
aarch64: Add support for POE2 instructions
aarch64: Add support for POE2 system registers
aarch64: Add support for TEV instructions
aarch64: Add support for POE2 PLBI instruction
gas/config/tc-aarch64.c | 43 ++
gas/doc/c-aarch64.texi | 4 +
gas/testsuite/gas/aarch64/plbi-1.d | 93 +++
gas/testsuite/gas/aarch64/plbi-1.s | 11 +
gas/testsuite/gas/aarch64/plbi-invalid-1.d | 3 +
gas/testsuite/gas/aarch64/plbi-invalid-1.l | 79 +++
gas/testsuite/gas/aarch64/plbi-invalid-1.s | 11 +
gas/testsuite/gas/aarch64/plbi-invalid-2.d | 3 +
gas/testsuite/gas/aarch64/plbi-invalid-2.l | 109 ++++
gas/testsuite/gas/aarch64/plbi-invalid-2.s | 54 ++
gas/testsuite/gas/aarch64/plbi-invalid-3.d | 3 +
gas/testsuite/gas/aarch64/plbi-invalid-3.l | 43 ++
gas/testsuite/gas/aarch64/plbi-invalid-3.s | 27 +
gas/testsuite/gas/aarch64/poe2-invalid-1.d | 4 +
gas/testsuite/gas/aarch64/poe2-invalid-1.l | 55 ++
gas/testsuite/gas/aarch64/poe2-invalid-1.s | 69 +++
gas/testsuite/gas/aarch64/poe2-invalid-2.d | 4 +
gas/testsuite/gas/aarch64/poe2-invalid-2.l | 29 +
gas/testsuite/gas/aarch64/poe2.d | 37 ++
gas/testsuite/gas/aarch64/poe2.s | 43 ++
.../gas/aarch64/sysreg/poe2-sysreg-1.d | 538 ++++++++++++++++++
.../gas/aarch64/sysreg/poe2-sysreg-1.s | 88 +++
gas/testsuite/gas/aarch64/tev-invalid-1.d | 4 +
gas/testsuite/gas/aarch64/tev-invalid-1.l | 18 +
gas/testsuite/gas/aarch64/tev-invalid-1.s | 22 +
gas/testsuite/gas/aarch64/tev-invalid-2.d | 4 +
gas/testsuite/gas/aarch64/tev-invalid-2.l | 22 +
gas/testsuite/gas/aarch64/tev.d | 30 +
gas/testsuite/gas/aarch64/tev.s | 28 +
include/opcode/aarch64.h | 8 +
opcodes/aarch64-asm-2.c | 4 +
opcodes/aarch64-dis-2.c | 118 +++-
opcodes/aarch64-dis.c | 1 +
opcodes/aarch64-opc-2.c | 3 +
opcodes/aarch64-opc.c | 44 ++
opcodes/aarch64-sys-regs.def | 264 +++++++++
opcodes/aarch64-tbl-2.h | 7 +
opcodes/aarch64-tbl.h | 33 ++
38 files changed, 1934 insertions(+), 26 deletions(-)
create mode 100644 gas/testsuite/gas/aarch64/plbi-1.d
create mode 100644 gas/testsuite/gas/aarch64/plbi-1.s
create mode 100644 gas/testsuite/gas/aarch64/plbi-invalid-1.d
create mode 100644 gas/testsuite/gas/aarch64/plbi-invalid-1.l
create mode 100644 gas/testsuite/gas/aarch64/plbi-invalid-1.s
create mode 100644 gas/testsuite/gas/aarch64/plbi-invalid-2.d
create mode 100644 gas/testsuite/gas/aarch64/plbi-invalid-2.l
create mode 100644 gas/testsuite/gas/aarch64/plbi-invalid-2.s
create mode 100644 gas/testsuite/gas/aarch64/plbi-invalid-3.d
create mode 100644 gas/testsuite/gas/aarch64/plbi-invalid-3.l
create mode 100644 gas/testsuite/gas/aarch64/plbi-invalid-3.s
create mode 100644 gas/testsuite/gas/aarch64/poe2-invalid-1.d
create mode 100644 gas/testsuite/gas/aarch64/poe2-invalid-1.l
create mode 100644 gas/testsuite/gas/aarch64/poe2-invalid-1.s
create mode 100644 gas/testsuite/gas/aarch64/poe2-invalid-2.d
create mode 100644 gas/testsuite/gas/aarch64/poe2-invalid-2.l
create mode 100644 gas/testsuite/gas/aarch64/poe2.d
create mode 100644 gas/testsuite/gas/aarch64/poe2.s
create mode 100644 gas/testsuite/gas/aarch64/sysreg/poe2-sysreg-1.d
create mode 100644 gas/testsuite/gas/aarch64/sysreg/poe2-sysreg-1.s
create mode 100644 gas/testsuite/gas/aarch64/tev-invalid-1.d
create mode 100644 gas/testsuite/gas/aarch64/tev-invalid-1.l
create mode 100644 gas/testsuite/gas/aarch64/tev-invalid-1.s
create mode 100644 gas/testsuite/gas/aarch64/tev-invalid-2.d
create mode 100644 gas/testsuite/gas/aarch64/tev-invalid-2.l
create mode 100644 gas/testsuite/gas/aarch64/tev.d
create mode 100644 gas/testsuite/gas/aarch64/tev.s
--
2.25.1
More information about the Binutils
mailing list