[PATCH] D37068: [AArch64] Armv8.3-a IDSAR6 register support

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 23 09:09:01 PDT 2017


samparker created this revision.
Herald added subscribers: kristof.beyls, javed.absar, rengolin, aemerson.

The IDSAR6 system register has been introduced to identify the Javascript data type conversion support. This patch adds assembler support for it.


https://reviews.llvm.org/D37068

Files:
  lib/Target/AArch64/AArch64SystemOperands.td
  test/MC/AArch64/armv8.3a-ID_ISAR6_EL1.s
  test/MC/Disassembler/AArch64/armv8.3a-ID_ISAR6_EL1.txt


Index: test/MC/Disassembler/AArch64/armv8.3a-ID_ISAR6_EL1.txt
===================================================================
--- /dev/null
+++ test/MC/Disassembler/AArch64/armv8.3a-ID_ISAR6_EL1.txt
@@ -0,0 +1,4 @@
+# RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+v8.3a --disassemble < %s | FileCheck %s
+
+# CHECK: mrs x0, ID_ISAR6_EL1
+0xe0,0x02,0x38,0xd5
Index: test/MC/AArch64/armv8.3a-ID_ISAR6_EL1.s
===================================================================
--- /dev/null
+++ test/MC/AArch64/armv8.3a-ID_ISAR6_EL1.s
@@ -0,0 +1,9 @@
+// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.3a < %s 2>&1 | FileCheck %s
+// RUN: not llvm-mc -triple aarch64-none-linux-gnu < %s 2> %t
+// RUN: FileCheck --check-prefix=CHECK-REQ %s < %t
+
+  mrs x0, ID_ISAR6_EL1
+// CHECK: mrs x0, ID_ISAR6_EL1        // encoding: [0xe0,0x02,0x38,0xd5]
+// CHECK-REQ: error: expected readable system register
+// CHECK-REQ-NEXT: mrs x0, ID_ISAR6_EL1
+// CHECK-REQ-NEXT:         ^
Index: lib/Target/AArch64/AArch64SystemOperands.td
===================================================================
--- lib/Target/AArch64/AArch64SystemOperands.td
+++ lib/Target/AArch64/AArch64SystemOperands.td
@@ -426,6 +426,10 @@
 let Requires = [{ {AArch64::FeatureRAS} }] in {
 def : ROSysReg<"ERRIDR_EL1", 0b11, 0b000, 0b0101, 0b0011, 0b000>;
 def : ROSysReg<"ERXFR_EL1",  0b11, 0b000, 0b0101, 0b0100, 0b000>;
+
+// v8.3a Javascript data type conversion support
+let Requires = [{ {AArch64::HasV8_3aOps} }] in
+def : ROSysReg<"ID_ISAR6_EL1",       0b11, 0b000, 0b0000, 0b0010, 0b111>;
 }
 
 //===----------------------


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D37068.112383.patch
Type: text/x-patch
Size: 1629 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170823/77cdcada/attachment.bin>


More information about the llvm-commits mailing list