From 82503ca7ed8301dc076919d5010bf981e35b1314 Mon Sep 17 00:00:00 2001 From: Przemyslaw Wirkus Date: Wed, 28 Oct 2020 14:09:25 +0000 Subject: aarch64: Add WFET instruction for Armv8.7-a This patch adds new to Armv8.7 WFET instruction which take one operand: WFET Where: is 64-bit name of the general-purpose source register, encoded in the "Rd" field. For more details regarding WFET (Wait For Event with Timeout) instruction for Armv8.7-a please refer to Arm A64 Instruction set documentation for Armv8-A architecture profile, see document pages 565 of [0]. [0]: https://developer.arm.com/docs/ddi0596/i gas/ChangeLog: 2020-10-27 Przemyslaw Wirkus * NEWS: Update docs. * testsuite/gas/aarch64/system-5.d: New test. * testsuite/gas/aarch64/system-5.s: New test. opcodes/ChangeLog: 2020-10-27 Przemyslaw Wirkus * aarch64-tbl.h (struct aarch64_opcode): Add new WFET instruction encoding and operand description. * aarch64-asm-2.c: Regenerated. * aarch64-dis-2.c: Regenerated. * aarch64-opc-2.c: Regenerated. --- gas/NEWS | 3 ++- gas/testsuite/gas/aarch64/system-5.d | 39 ++++++++++++++++++++++++++++++++++++ gas/testsuite/gas/aarch64/system-5.s | 34 +++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 gas/testsuite/gas/aarch64/system-5.d create mode 100644 gas/testsuite/gas/aarch64/system-5.s (limited to 'gas') diff --git a/gas/NEWS b/gas/NEWS index b993464..88ad1d8 100644 --- a/gas/NEWS +++ b/gas/NEWS @@ -21,7 +21,8 @@ * Add support for Armv8-R and Armv8.7-A AArch64. -* Add support for DSB memory nXS barrier instruction for Armv8.7 AArch64. +* Add support for DSB memory nXS barrier and WFET instruction for Armv8.7 + AArch64. * Add support for Intel TDX instructions. diff --git a/gas/testsuite/gas/aarch64/system-5.d b/gas/testsuite/gas/aarch64/system-5.d new file mode 100644 index 0000000..22fd611 --- /dev/null +++ b/gas/testsuite/gas/aarch64/system-5.d @@ -0,0 +1,39 @@ +#name: WFET (Wait For Event with Timeout) instruction +#objdump: -dr + +.*: file format .* + +Disassembly of section \.text: + +0+ <.*>: +.*: d5031000 wfet x0 +.*: d5031001 wfet x1 +.*: d5031002 wfet x2 +.*: d5031003 wfet x3 +.*: d5031004 wfet x4 +.*: d5031005 wfet x5 +.*: d5031006 wfet x6 +.*: d5031007 wfet x7 +.*: d5031008 wfet x8 +.*: d5031009 wfet x9 +.*: d503100a wfet x10 +.*: d503100b wfet x11 +.*: d503100c wfet x12 +.*: d503100d wfet x13 +.*: d503100e wfet x14 +.*: d503100f wfet x15 +.*: d5031010 wfet x16 +.*: d5031011 wfet x17 +.*: d5031012 wfet x18 +.*: d5031013 wfet x19 +.*: d5031014 wfet x20 +.*: d5031015 wfet x21 +.*: d5031016 wfet x22 +.*: d5031017 wfet x23 +.*: d5031018 wfet x24 +.*: d5031019 wfet x25 +.*: d503101a wfet x26 +.*: d503101b wfet x27 +.*: d503101c wfet x28 +.*: d503101d wfet x29 +.*: d503101e wfet x30 diff --git a/gas/testsuite/gas/aarch64/system-5.s b/gas/testsuite/gas/aarch64/system-5.s new file mode 100644 index 0000000..6a518ce --- /dev/null +++ b/gas/testsuite/gas/aarch64/system-5.s @@ -0,0 +1,34 @@ +/* Wait For Event with Timeout is a Armv8.7 instruction. */ +.arch armv8.7-a + + wfet x0 + wfet x1 + wfet x2 + wfet x3 + wfet x4 + wfet x5 + wfet x6 + wfet x7 + wfet x8 + wfet x9 + wfet x10 + wfet x11 + wfet x12 + wfet x13 + wfet x14 + wfet x15 + wfet x16 + wfet x17 + wfet x18 + wfet x19 + wfet x20 + wfet x21 + wfet x22 + wfet x23 + wfet x24 + wfet x25 + wfet x26 + wfet x27 + wfet x28 + wfet x29 + wfet x30 -- cgit v1.1