]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
[Aarch64] Support ARMv8.2 AT instructions
authorMatthew Wahab <matthew.wahab@arm.com>
Thu, 10 Dec 2015 16:58:51 +0000 (16:58 +0000)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 24 Aug 2017 12:46:29 +0000 (09:46 -0300)
ARMv8.2 adds new instructions AT S1E1RP and AT S1E1WP to Aarch64. This
patch adds support for the instructions, making them available when
-march=armv8.2-a is selected.

gas/testsuite/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* gas/aarch64/sysreg-2.d: Update for new tests for AT S1E1RP and
AT S1E1WP.
* gas/aarch64/sysreg-2.s: Add tests for AT S1E1RP and AT S1E1WP.

opcodes/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-opc.c (aarch64_sys_regs_at): Add "s1e1rp" and "s1e1wp".
(aarch64_sys_ins_reg_supported_p): Add ARMv8.2 system register
feature test for "s1e1rp" and "s1e1wp".

Change-Id: I09e1044b629ab0a34b03c423e8d4e71ff92daad4

gas/testsuite/ChangeLog
gas/testsuite/gas/aarch64/sysreg-2.d
gas/testsuite/gas/aarch64/sysreg-2.s
opcodes/ChangeLog
opcodes/aarch64-opc.c

index 4579e1152a60319f4eb931e0e637dcd6e74c4d94..ce344fdce1722593755f024cb9b9c2d51bec10f6 100644 (file)
@@ -1,3 +1,9 @@
+2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * gas/aarch64/sysreg-2.d: Update for new tests for AT S1E1RP and
+       AT S1E1WP.
+       * gas/aarch64/sysreg-2.s: Add tests for AT S1E1RP and AT S1E1WP.
+
 2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>
 
        * gas/aarch64/sysreg-2.d: Add tests for dc instruction.
index dffe08f83e43526bb5fc59137cbbb878be1d6ce5..f73412f0dd0d7e13440eaa82254f096c55e47918 100644 (file)
@@ -30,3 +30,5 @@ Disassembly of section .text:
   [0-9a-f]+:   d50b7a20        dc      cvac, x0
   [0-9a-f]+:   d50b7b21        dc      cvau, x1
   [0-9a-f]+:   d50b7c22        dc      cvap, x2
+  [0-9a-f]+:   d5087900        at      s1e1rp, x0
+  [0-9a-f]+:   d5087921        at      s1e1wp, x1
index 62b3a5e8af316a8affb03eb79371ca7bad3a8e08..f89d05796921024e3290f7dc1366e312b081b400 100644 (file)
@@ -36,3 +36,8 @@
        dc cvac, x0
        dc cvau, x1
        dc cvap, x2
+
+       /* AT.  */
+
+       at s1e1rp, x0
+       at s1e1wp, x1
index f502bf398b1b64547ccb8df4f47bc139b2d9cd5e..b1e3c0f1a288db8e8fc6ac0a6c4e8df5195e2ef1 100644 (file)
@@ -1,3 +1,9 @@
+2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * aarch64-opc.c (aarch64_sys_regs_at): Add "s1e1rp" and "s1e1wp".
+       (aarch64_sys_ins_reg_supported_p): Add ARMv8.2 system register
+       feature test for "s1e1rp" and "s1e1wp".
+
 2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>
 
        * aarch64-opc.c (aarch64_sys_regs_dc): Add "cvap".
index 6b672f3fd3edd394e3efe29921b6a6556005bda9..0254900e0734774dc0a3ffd298e1021c6056a024 100644 (file)
@@ -3236,6 +3236,12 @@ aarch64_pstatefield_supported_p (const aarch64_feature_set features,
       && !AARCH64_CPU_HAS_FEATURE (features, AARCH64_FEATURE_V8_2))
     return FALSE;
 
+  /* AT S1E1RP, AT S1E1WP.  Values are from aarch64_sys_regs_at.  */
+  if ((reg->value == CPENS (0, C7, C9, 0)
+       || reg->value == CPENS (0, C7, C9, 1))
+      && !AARCH64_CPU_HAS_FEATURE (features, AARCH64_FEATURE_V8_2))
+    return FALSE;
+
   return TRUE;
 }
 
@@ -3275,6 +3281,8 @@ const aarch64_sys_ins_reg aarch64_sys_regs_at[] =
     { "s1e2w",      CPENS (4, C7, C8, 1), F_HASXT },
     { "s1e3r",      CPENS (6, C7, C8, 0), F_HASXT },
     { "s1e3w",      CPENS (6, C7, C8, 1), F_HASXT },
+    { "s1e1rp",     CPENS (0, C7, C9, 0), F_HASXT | F_ARCHEXT },
+    { "s1e1wp",     CPENS (0, C7, C9, 1), F_HASXT | F_ARCHEXT },
     { 0,       CPENS(0,0,0,0), 0 }
 };