From 4792a423d264cfb6dbb656ea97b1c84d1b4e55b6 Mon Sep 17 00:00:00 2001 From: Yury Khrustalev Date: Wed, 21 Feb 2024 12:52:23 +0000 Subject: aarch64: Add support for (M)ADDPT and (M)SUBPT instructions The following instructions are added in this patch: - ADDPT and SUBPT - Add/Subtract checked pointer - MADDPT and MSUBPT - Multiply Add/Subtract checked pointer These instructions are part of Checked Pointer Arithmetic extension. This patch adds assembler and disassembler support for these instructions with relevant checks. Tests are included as well. A new flag "+cpa" added to documentation. This flag enables CPA extension. Regression tested on the aarch64-none-linux-gnu target and no regressions have been found. --- include/opcode/aarch64.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'include') diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index f585265..1e134a6 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -228,6 +228,8 @@ enum aarch64_feature_bit { AARCH64_FEATURE_SVE2p1, /* RCPC3 instructions. */ AARCH64_FEATURE_RCPC3, + /* Checked Pointer Arithmetic instructions. */ + AARCH64_FEATURE_CPA, AARCH64_NUM_FEATURES }; @@ -490,6 +492,7 @@ enum aarch64_opnd AARCH64_OPND_PAIRREG_OR_XZR, /* Paired register operand, optionally xzr. */ AARCH64_OPND_Rm_EXT, /* Integer Rm extended. */ AARCH64_OPND_Rm_SFT, /* Integer Rm shifted. */ + AARCH64_OPND_Rm_LSL, /* Integer Rm shifted (LSL-only). */ AARCH64_OPND_Fd, /* Floating-point Fd. */ AARCH64_OPND_Fn, /* Floating-point Fn. */ -- cgit v1.1