[PATCH 1/7] aarch64: add PAuth_LR instructions belonging to NOP space

Muhammad Kamran <[email protected]>
Newsgroups gmane.comp.gnu.binutils
Message-ID <[email protected]>
From: Matthieu Longo <[email protected]>

The 'pacm' instruction is introduced by the PAC enhancement feature
PAuth_LR, but does not require the declaration of this feature
because it belongs to the NOP space.
This patch also adds the relevant tests for the 'pacm' instruction.

CI-tag:skip
---
 gas/testsuite/gas/aarch64/system-3.d | 2 ++
 gas/testsuite/gas/aarch64/system-3.s | 4 ++++
 gas/testsuite/gas/aarch64/system.d   | 2 +-
 opcodes/aarch64-tbl.h                | 1 +
 4 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/gas/testsuite/gas/aarch64/system-3.d b/gas/testsuite/gas/aarch64/system-3.d
index 04df1ee5cbf..4b5dae23d03 100644
--- a/gas/testsuite/gas/aarch64/system-3.d
+++ b/gas/testsuite/gas/aarch64/system-3.d
@@ -32,3 +32,5 @@ Disassembly of section \.text:
 .*:	d50323df 	autibz
 .*:	d50323ff 	autibsp
 .*:	d50323ff 	autibsp
+.*:	d50324ff 	pacm
+.*:	d50324ff 	pacm
diff --git a/gas/testsuite/gas/aarch64/system-3.s b/gas/testsuite/gas/aarch64/system-3.s
index c68b4a8e09d..06529946a26 100644
--- a/gas/testsuite/gas/aarch64/system-3.s
+++ b/gas/testsuite/gas/aarch64/system-3.s
@@ -39,3 +39,7 @@
 
 	autibsp
 	hint #0x1f
+
+	/* FEAT_PAuth_LR Pointer Authentication, HINT alias instructions. */
+	pacm
+	hint #0x27
diff --git a/gas/testsuite/gas/aarch64/system.d b/gas/testsuite/gas/aarch64/system.d
index 11498317e66..01446c15c51 100644
--- a/gas/testsuite/gas/aarch64/system.d
+++ b/gas/testsuite/gas/aarch64/system.d
@@ -57,7 +57,7 @@ Disassembly of section \.text:
 .*:	d503249f 	(hint	#0x24|bti	j)
 .*:	d50324bf 	hint	#0x25
 .*:	d50324df 	(hint	#0x26|bti	jc)
-.*:	d50324ff 	hint	#0x27
+.*:	d50324ff 	(hint	#0x27|pacm)
 .*:	d503251f 	(hint	#0x28|chkfeat	x16)
 .*:	d503253f 	hint	#0x29
 .*:	d503255f 	hint	#0x2a
diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h
index 026432a5e25..570ea52052f 100644
--- a/opcodes/aarch64-tbl.h
+++ b/opcodes/aarch64-tbl.h
@@ -5179,6 +5179,7 @@ const struct aarch64_opcode aarch64_opcode_table[] =
   CORE_INSN ("pacib1716", 0xd503215f, 0xffffffff, ic_system, 0, OP0 (), QL_0, F_ALIAS),
   CORE_INSN ("autia1716", 0xd503219f, 0xffffffff, ic_system, 0, OP0 (), QL_0, F_ALIAS),
   CORE_INSN ("autib1716", 0xd50321df, 0xffffffff, ic_system, 0, OP0 (), QL_0, F_ALIAS),
+  CORE_INSN ("pacm", 0xd50324ff, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
   CORE_INSN ("esb", 0xd503221f, 0xffffffff, ic_system, 0, OP0 (), QL_0, F_ALIAS),
   CORE_INSN ("psb", 0xd503223f, 0xffffffff, ic_system, 0, OP1 (BARRIER_PSB), QL_NIL1, F_ALIAS),
   CORE_INSN ("tsb", 0xd503225f, 0xffffffff, ic_system, 0, OP1 (BARRIER_PSB), QL_NIL1, F_ALIAS),
-- 
2.43.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.