aarch64: New instructions for maintenance of GPT entries cached in a TLB
authorPrzemyslaw Wirkus <przemyslaw.wirkus@arm.com>
Mon, 19 Apr 2021 14:00:07 +0000 (15:00 +0100)
committerPrzemyslaw Wirkus <przemyslaw.wirkus@arm.com>
Mon, 19 Apr 2021 14:01:56 +0000 (15:01 +0100)
This patch adds support to four new system registers (RPAOS, RPALOS, PAALLOS,
PAALL) in conjunction with TLBI instruction. This change is part of RME (Realm
Management Extension).

gas/ChangeLog:

2021-04-19  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

* NEWS: Update news.
* testsuite/gas/aarch64/rme.d: Update test.
* testsuite/gas/aarch64/rme.s: Update test.

opcodes/ChangeLog:

2021-04-19  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>

* aarch64-opc.c: Add new registers (RPAOS, RPALOS, PAALLOS, PAALL) support for
TLBI instruction.

gas/ChangeLog
gas/NEWS
gas/testsuite/gas/aarch64/rme.d
gas/testsuite/gas/aarch64/rme.s
opcodes/ChangeLog
opcodes/aarch64-opc.c

index da2f91f7a8cb7091fb6b269ffcb64365810e0086..a1bfcde9bd34f4190e45f0a06e729d6edade860c 100644 (file)
@@ -1,3 +1,9 @@
+2021-04-19  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
+
+       * NEWS: Update news.
+       * testsuite/gas/aarch64/rme.d: Update test.
+       * testsuite/gas/aarch64/rme.s: Update test.
+
 2021-04-19  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
 
        * testsuite/gas/aarch64/rme.d: Update test.
index 417f8b1f5a62286d2de2bd4af6dc7c27bd5f37d9..6944bdf3ba64740838711c1bbe00aad0f6a1a212 100644 (file)
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -2,6 +2,8 @@
 
 * arm-symbianelf support removed.
 
+* Add support for Realm Management Extension (RME) for AArch64.
+
 Changes in 2.36:
 
 * Add support for Intel AVX VNNI instructions.
index 89bedb85dba4960a578ded986668220dcd03fe41..a714b78c34653eea5c09616660bf1df5390348df 100644 (file)
@@ -14,3 +14,7 @@ Disassembly of section \.text:
   10:  d51e2180        msr     gptbr_el3, x0
   14:  d50e7e20        dc      cipapa, x0
   18:  d50e7ea0        dc      cigdpapa, x0
+  1c:  d50e8460        tlbi    rpaos, x0
+  20:  d50e84e0        tlbi    rpalos, x0
+  24:  d50e819f        tlbi    paallos
+  28:  d50e879f        tlbi    paall
index b9a915df1d8201ef0bcf04c3ff8a6ed28c226418..21d9bd2deeb4ec45c01ae9642093184e6e4ec60f 100644 (file)
@@ -12,3 +12,9 @@ msr gptbr_el3, x0
 /* RME data cache maintenance operations.   */
 dc cipapa, x0
 dc cigdpapa, x0
+
+/* RME instructions for maintenance of GPT entries cached in a TLB.  */
+tlbi rpaos, x0
+tlbi rpalos, x0
+tlbi paallos
+tlbi paall
index 5bae9d06e6938109d9468f7b23222b277149da86..477504870a79f0edbb9c94743513dbf8cfdbe28c 100644 (file)
@@ -1,3 +1,8 @@
+2021-04-19  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
+
+       * aarch64-opc.c: Add new registers (RPAOS, RPALOS, PAALLOS, PAALL) support
+       for TLBI instruction.
+
 2021-04-19  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
 
        * aarch64-opc.c: Add new register (CIPAPA, CIGDPAPA) support for
index b315a82b14eff617d81abbc93fa00d0bb82d3b0c..dea4b8e6f1a763bf07975c04d7610b0d6338b4ce 100644 (file)
@@ -4870,6 +4870,11 @@ const aarch64_sys_ins_reg aarch64_sys_regs_tlbi[] =
     { "rvae3os",    CPENS (6, C8, C5, 1), F_HASXT | F_ARCHEXT },
     { "rvale3os",   CPENS (6, C8, C5, 5), F_HASXT | F_ARCHEXT },
 
+    { "rpaos",      CPENS (6, C8, C4, 3), F_HASXT },
+    { "rpalos",     CPENS (6, C8, C4, 7), F_HASXT },
+    { "paallos",    CPENS (6, C8, C1, 4), 0},
+    { "paall",      CPENS (6, C8, C7, 4), 0},
+
     { 0,       CPENS(0,0,0,0), 0 }
 };