From 8787d804e1cbbd1946239d6c5e560c87d38bac06 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Fri, 11 Nov 2016 10:29:07 +0000 Subject: [AArch64] Add ARMv8.3 instructions which are in the NOP space This patch adds support for a subset of the ARMv8.3 pointer authentication instructions: XPACLRI, PACIA1716, PACIB1716, AUTIA1716, AUTIA1716, PACIAZ, PACIASP, PACIBZ, PACISP, AUTIAZ, AUTIASP, AUTIBZ, AUTIBSP. These are aliases to HINT #0x7, HINT #0x8, HINT #0xa, HINT #0xc, HINT #0xe, HINT #0x18, HINT #0x19, ..., HINT #0x1f respectively. For more details about pointer authentication in ARMv8.3 see https://community.arm.com/groups/processors/blog/2016/10/27/armv8-a-architecture-2016-additions opcodes/ 2016-11-11 Szabolcs Nagy * aarch64-tbl.h (aarch64_feature_v8_3, ARMV8_3, V8_3_INSN): New. (arch64_opcode_table): Add xpaclri, pacia1716, pacib1716, autia1716, autib1716, paciaz, paciasp, pacibz, pacibsp, autiaz, autiasp, autibz, autibsp. * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. gas/ 2016-11-11 Szabolcs Nagy * testsuite/gas/aarch64/system-3.s: New. * testsuite/gas/aarch64/system-3.d: New. * testsuite/gas/aarch64/system.d: Update expected output. --- gas/ChangeLog | 6 ++++++ gas/testsuite/gas/aarch64/system-3.d | 34 ++++++++++++++++++++++++++++++ gas/testsuite/gas/aarch64/system-3.s | 41 ++++++++++++++++++++++++++++++++++++ gas/testsuite/gas/aarch64/system.d | 26 +++++++++++------------ 4 files changed, 94 insertions(+), 13 deletions(-) create mode 100644 gas/testsuite/gas/aarch64/system-3.d create mode 100644 gas/testsuite/gas/aarch64/system-3.s (limited to 'gas') diff --git a/gas/ChangeLog b/gas/ChangeLog index 6c0d24f..1caf7a1 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,11 @@ 2016-11-11 Szabolcs Nagy + * testsuite/gas/aarch64/system-3.s: New. + * testsuite/gas/aarch64/system-3.d: New. + * testsuite/gas/aarch64/system.d: Update expected output. + +2016-11-11 Szabolcs Nagy + * config/tc-aarch64.c (aarch64_archs): Add "armv8.3-a". * doc/c-aarch64.texi (-march): Likewise. diff --git a/gas/testsuite/gas/aarch64/system-3.d b/gas/testsuite/gas/aarch64/system-3.d new file mode 100644 index 0000000..f1db369 --- /dev/null +++ b/gas/testsuite/gas/aarch64/system-3.d @@ -0,0 +1,34 @@ +#as: -march=armv8.3-a +#objdump: -dr + +.*: file format .* + +Disassembly of section \.text: + +0000000000000000 <.*>: + 0: d50320ff xpaclri + 4: d50320ff xpaclri + 8: d503211f pacia1716 + c: d503211f pacia1716 + 10: d503215f pacib1716 + 14: d503215f pacib1716 + 18: d503219f autia1716 + 1c: d503219f autia1716 + 20: d50321df autib1716 + 24: d50321df autib1716 + 28: d503231f paciaz + 2c: d503231f paciaz + 30: d503233f paciasp + 34: d503233f paciasp + 38: d503235f pacibz + 3c: d503235f pacibz + 40: d503237f pacibsp + 44: d503237f pacibsp + 48: d503239f autiaz + 4c: d503239f autiaz + 50: d50323bf autiasp + 54: d50323bf autiasp + 58: d50323df autibz + 5c: d50323df autibz + 60: d50323ff autibsp + 64: d50323ff autibsp diff --git a/gas/testsuite/gas/aarch64/system-3.s b/gas/testsuite/gas/aarch64/system-3.s new file mode 100644 index 0000000..c68b4a8 --- /dev/null +++ b/gas/testsuite/gas/aarch64/system-3.s @@ -0,0 +1,41 @@ + /* ARMv8.3 Pointer authentication, HINT alias instructions. */ + .text + + xpaclri + hint #0x7 + + pacia1716 + hint #0x8 + + pacib1716 + hint #0xa + + autia1716 + hint #0xc + + autib1716 + hint #0xe + + paciaz + hint #0x18 + + paciasp + hint #0x19 + + pacibz + hint #0x1a + + pacibsp + hint #0x1b + + autiaz + hint #0x1c + + autiasp + hint #0x1d + + autibz + hint #0x1e + + autibsp + hint #0x1f diff --git a/gas/testsuite/gas/aarch64/system.d b/gas/testsuite/gas/aarch64/system.d index 2cfcdb5..1103360 100644 --- a/gas/testsuite/gas/aarch64/system.d +++ b/gas/testsuite/gas/aarch64/system.d @@ -19,14 +19,14 @@ Disassembly of section \.text: 2c: d503209f sev 30: d50320bf sevl 34: d50320df hint #0x6 - 38: d50320ff hint #0x7 - 3c: d503211f hint #0x8 + 38: d50320ff (hint #0x7|xpaclri) + 3c: d503211f (hint #0x8|pacia1716) 40: d503213f hint #0x9 - 44: d503215f hint #0xa + 44: d503215f (hint #0xa|pacib1716) 48: d503217f hint #0xb - 4c: d503219f hint #0xc + 4c: d503219f (hint #0xc|autia1716) 50: d50321bf hint #0xd - 54: d50321df hint #0xe + 54: d50321df (hint #0xe|autib1716) 58: d50321ff hint #0xf 5c: d503221f (hint #0x10|esb) 60: d503223f (hint #0x11|psb csync) @@ -36,14 +36,14 @@ Disassembly of section \.text: 70: d50322bf hint #0x15 74: d50322df hint #0x16 78: d50322ff hint #0x17 - 7c: d503231f hint #0x18 - 80: d503233f hint #0x19 - 84: d503235f hint #0x1a - 88: d503237f hint #0x1b - 8c: d503239f hint #0x1c - 90: d50323bf hint #0x1d - 94: d50323df hint #0x1e - 98: d50323ff hint #0x1f + 7c: d503231f (hint #0x18|paciaz) + 80: d503233f (hint #0x19|paciasp) + 84: d503235f (hint #0x1a|pacibz) + 88: d503237f (hint #0x1b|pacibsp) + 8c: d503239f (hint #0x1c|autiaz) + 90: d50323bf (hint #0x1d|autiasp) + 94: d50323df (hint #0x1e|autibz) + 98: d50323ff (hint #0x1f|autibsp) 9c: d503241f hint #0x20 a0: d503243f hint #0x21 a4: d503245f hint #0x22 -- cgit v1.1