aarch64: Add support for SVE ADDPT, SUBPT, MADPT, MLAPT instructions
commit07b16fae7b79644d52e529db7975127b79752317
authorYury Khrustalev <yury.khrustalev@arm.com>
Mon, 26 Feb 2024 13:43:48 +0000 (26 13:43 +0000)
committerNick Clifton <nickc@redhat.com>
Mon, 18 Mar 2024 16:54:06 +0000 (18 16:54 +0000)
treef4409561615b779703a080eaeb18f2081d2b66ab
parent4792a423d264cfb6dbb656ea97b1c84d1b4e55b6
aarch64: Add support for SVE ADDPT, SUBPT, MADPT, MLAPT instructions

The following instructions are added in this patch:

- ADDPT (predicated): Add checked pointer vectors (predicated).
- ADDPT (unpredicated): Add checked pointer vectors (unpredicated).
- SUBPT (predicated): Subtract checked pointer vectors (predicated).
- SUBPT (unpredicated): Subtract checked pointer vectors (unpredicated).
- MADPT: Multiply-add checked pointer vectors, writing multiplicand
- MLAPT: Multiply-add checked pointer vectors, writing addend

These instructions are part of Checked Pointer Arithmetic extension
and are enabled when both CPA and SVE are enabled. To achieve this,
both flag "+sve" and "+cpa" should be active.

This patch adds assembler and disassembler support for these instructions
with relevant checks. Tests are included as well.

Regression tested on the aarch64-none-linux-gnu target and no regressions
have been found.
gas/testsuite/gas/aarch64/cpa-addsub-bad.l
gas/testsuite/gas/aarch64/cpa-sve-bad.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/cpa-sve-bad.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/cpa-sve-bad.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/cpa-sve-neg.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/cpa-sve-neg.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/cpa-sve-neg.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/cpa-sve.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/cpa-sve.s [new file with mode: 0644]
opcodes/aarch64-tbl.h