[PATCH v1 0/4] aarch64: Add support for FEAT_TLBID feature

Srinath Parvathaneni srinath.parvathaneni@arm.com
Thu Jan 22 14:41:05 GMT 2026


Hi,

TLBI Domains feature changes TLBI, TLBIP and PLBI
system instructions. For the TLBI/PLBI instruction
with optional register argument <Rt> == 0b1111,
with FEAT_TLBID enabled they are permitted to have
an Rt value which is not 0b11111 and this is allowed
for all the TLBI/PLBI instructions with a <type> of
ALLE1*, ALLE2*, VMALL*, VMALLS12* or VMALLWS2* and a
<shareability> of IS or OS.

For all TLBIP *E1IS*, TLBIP *E1OS*, TLBIP *E2IS* and
TLBIP *E2OS* instructions that are currently dependent
on FEAT_D128 (+d128), will also be available with
FEAT_TLBID (+tlbid).

TLBID introduces following system registers.

* tlbididr_el1 (RO)
* vtlbid0_el2
* vtlbid1_el2
* vtlbid2_el2
* vtlbid3_el2
* vtlbidos0_el2
* vtlbidos1_el2
* vtlbidos2_el2
* vtlbidos3_el2

This patch series adds support for FEAT_TLBID feature,
which is enabled by new +tlbid option.

Regression tested for aarch64-none-elf target and found no
regressions.

Ok for binutils-master?

Regards,
Srinath

Srinath Parvathaneni (4):
  aarch64: Add support for FEAT_TLBID feature
  aarch64: Enable TLBIP instructions with tlbid option
  aarch64: TLBI Domains changes for PLBI instruction
  aarch64: Add support for TLBID system registers

 gas/config/tc-aarch64.c                       |  30 ++-
 gas/doc/c-aarch64.texi                        |   2 +
 gas/testsuite/gas/aarch64/plbi-invalid-1.l    |  48 ++--
 gas/testsuite/gas/aarch64/plbi-invalid-2.l    | 108 ++++-----
 gas/testsuite/gas/aarch64/plbi-invalid-3.l    |  54 ++---
 .../gas/aarch64/sysreg/illegal-sysreg-5.l     |   2 +-
 .../gas/aarch64/sysreg/tlbid-sysreg-1.d       |  27 +++
 .../gas/aarch64/sysreg/tlbid-sysreg-1.s       |  14 ++
 gas/testsuite/gas/aarch64/tlbid-1.d           |  32 +++
 gas/testsuite/gas/aarch64/tlbid-1.s           |  28 +++
 gas/testsuite/gas/aarch64/tlbid-2.d           |  73 ++++++
 gas/testsuite/gas/aarch64/tlbid-2.s           |  67 ++++++
 gas/testsuite/gas/aarch64/tlbid-3.d           |  20 ++
 gas/testsuite/gas/aarch64/tlbid-3.s           |  12 +
 gas/testsuite/gas/aarch64/tlbid-invalid-1.d   |   3 +
 gas/testsuite/gas/aarch64/tlbid-invalid-1.l   |  43 ++++
 gas/testsuite/gas/aarch64/tlbid-invalid-1.s   |  20 ++
 gas/testsuite/gas/aarch64/tlbid-invalid-2.d   |   5 +
 gas/testsuite/gas/aarch64/tlbid-invalid-2.l   |  57 +++++
 gas/testsuite/gas/aarch64/tlbid-invalid-3.d   |   4 +
 gas/testsuite/gas/aarch64/tlbid-invalid-3.l   | 129 +++++++++++
 gas/testsuite/gas/aarch64/tlbid-invalid-4.d   |   4 +
 gas/testsuite/gas/aarch64/tlbid-invalid-4.l   |  13 ++
 include/opcode/aarch64.h                      |   5 +
 opcodes/aarch64-dis.c                         |   7 +-
 opcodes/aarch64-opc.c                         | 207 ++++++++++--------
 opcodes/aarch64-opc.h                         |   3 +
 opcodes/aarch64-sys-regs.def                  |   9 +
 opcodes/aarch64-tbl.h                         |   7 +-
 29 files changed, 835 insertions(+), 198 deletions(-)
 create mode 100644 gas/testsuite/gas/aarch64/sysreg/tlbid-sysreg-1.d
 create mode 100644 gas/testsuite/gas/aarch64/sysreg/tlbid-sysreg-1.s
 create mode 100644 gas/testsuite/gas/aarch64/tlbid-1.d
 create mode 100644 gas/testsuite/gas/aarch64/tlbid-1.s
 create mode 100644 gas/testsuite/gas/aarch64/tlbid-2.d
 create mode 100644 gas/testsuite/gas/aarch64/tlbid-2.s
 create mode 100644 gas/testsuite/gas/aarch64/tlbid-3.d
 create mode 100644 gas/testsuite/gas/aarch64/tlbid-3.s
 create mode 100644 gas/testsuite/gas/aarch64/tlbid-invalid-1.d
 create mode 100644 gas/testsuite/gas/aarch64/tlbid-invalid-1.l
 create mode 100644 gas/testsuite/gas/aarch64/tlbid-invalid-1.s
 create mode 100644 gas/testsuite/gas/aarch64/tlbid-invalid-2.d
 create mode 100644 gas/testsuite/gas/aarch64/tlbid-invalid-2.l
 create mode 100644 gas/testsuite/gas/aarch64/tlbid-invalid-3.d
 create mode 100644 gas/testsuite/gas/aarch64/tlbid-invalid-3.l
 create mode 100644 gas/testsuite/gas/aarch64/tlbid-invalid-4.d
 create mode 100644 gas/testsuite/gas/aarch64/tlbid-invalid-4.l

-- 
2.25.1



More information about the Binutils mailing list