This patch introduces RME (Realm Management Extension) system registers.
gas/ChangeLog:
2021-03-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
* testsuite/gas/aarch64/rme-invalid.d: New test.
* testsuite/gas/aarch64/rme-invalid.l: New test.
* testsuite/gas/aarch64/rme-invalid.s: New test.
* testsuite/gas/aarch64/rme.d: New test.
* testsuite/gas/aarch64/rme.s: New test.
opcodes/ChangeLog:
2021-03-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
* aarch64-opc.c: Add RME system registers.
+2021-04-16 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
+
+ * testsuite/gas/aarch64/rme-invalid.d: New test.
+ * testsuite/gas/aarch64/rme-invalid.l: New test.
+ * testsuite/gas/aarch64/rme-invalid.s: New test.
+ * testsuite/gas/aarch64/rme.d: New test.
+ * testsuite/gas/aarch64/rme.s: New test.
+
2021-04-16 Nelson Chu <nelson.chu@sifive.com>
PR 27436
--- /dev/null
+#name: Invalid RME System registers usage
+#source: rme-invalid.s
+#warning_output: rme-invalid.l
--- /dev/null
+.*: Assembler messages:
+.*: Warning: specified register cannot be written to at operand 1 -- `msr mfar_el3,x0'
--- /dev/null
+/* Realm Management Extension. */
+
+/* Illegal write to RME system registers. */
+msr mfar_el3, x0
--- /dev/null
+#name: RME System registers
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+0+ <.*>:
+
+ 0: d53e60a0 mrs x0, mfar_el3
+ 4: d53e21c0 mrs x0, gpccr_el3
+ 8: d53e2180 mrs x0, gptbr_el3
+ c: d51e21c0 msr gpccr_el3, x0
+ 10: d51e2180 msr gptbr_el3, x0
--- /dev/null
+/* Realm Management Extension. */
+
+/* Read from RME system registers. */
+mrs x0, mfar_el3
+mrs x0, gpccr_el3
+mrs x0, gptbr_el3
+
+/* Write to RME system registers. */
+msr gpccr_el3, x0
+msr gptbr_el3, x0
+2021-04-16 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
+
+ * aarch64-opc.c: Add RME system registers.
+
2021-04-16 Lifang Xia <lifang_xia@c-sky.com>
* riscv-opc.c (riscv_opcodes): New insn alias for addi. Compress
SR_CORE ("accdata_el1", CPENC (3,0,C13,C0,5), 0),
+ SR_CORE ("mfar_el3", CPENC (3,6,C6,C0,5), F_REG_READ),
+ SR_CORE ("gpccr_el3", CPENC (3,6,C2,C1,6), 0),
+ SR_CORE ("gptbr_el3", CPENC (3,6,C2,C1,4), 0),
+
{ 0, CPENC (0,0,0,0,0), 0, 0 }
};