[llvm] [AArch64]Add SCR2_EL3 system register (PR #180918)

via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 11 03:19:25 PST 2026


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-aarch64

Author: None (CarolineConcatto)

<details>
<summary>Changes</summary>

The link to the system register:

https://developer.arm.com/documentation/111107/2025-12/AArch64-Registers/SCR2-EL3--Secure-Configuration-Register?lang=en

---
Full diff: https://github.com/llvm/llvm-project/pull/180918.diff


2 Files Affected:

- (modified) llvm/lib/Target/AArch64/AArch64SystemOperands.td (+4) 
- (added) llvm/test/MC/AArch64/armv9.7-scr2.s (+24) 


``````````diff
diff --git a/llvm/lib/Target/AArch64/AArch64SystemOperands.td b/llvm/lib/Target/AArch64/AArch64SystemOperands.td
index a1ab0da7b051c..d91edf7a7b89d 100644
--- a/llvm/lib/Target/AArch64/AArch64SystemOperands.td
+++ b/llvm/lib/Target/AArch64/AArch64SystemOperands.td
@@ -2372,6 +2372,10 @@ def : RWSysReg<"MPAMVIDCR_EL2", 0b11, 0b100, 0b1010, 0b0111, 0b000>;
 def : RWSysReg<"MPAMVIDSR_EL2", 0b11, 0b100, 0b1010, 0b0111, 0b001>;
 def : RWSysReg<"MPAMVIDSR_EL3", 0b11, 0b110, 0b1010, 0b0111, 0b001>;
 
+// v9.7a General Improvements
+//                                        Op0   Op1    CRn     CRm     Op2
+def : RWSysReg<"SCR2_EL3",                0b11, 0b110, 0b0001, 0b0010, 0b010>;
+
 //===----------------------------------------------------------------------===//
 // FEAT_SRMASK v9.6a registers
 //===----------------------------------------------------------------------===//
diff --git a/llvm/test/MC/AArch64/armv9.7-scr2.s b/llvm/test/MC/AArch64/armv9.7-scr2.s
new file mode 100644
index 0000000000000..fb3a8e5d14eff
--- /dev/null
+++ b/llvm/test/MC/AArch64/armv9.7-scr2.s
@@ -0,0 +1,24 @@
+// RUN: llvm-mc -triple=aarch64 -show-encoding < %s \
+// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
+// RUN: llvm-mc -triple=aarch64 -filetype=obj < %s \
+// RUN:        | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-INST
+// RUN: llvm-mc -triple=aarch64 -filetype=obj < %s \
+// RUN:        | llvm-objdump -d  - | FileCheck %s --check-prefix=CHECK-UNKNOWN
+// RUN: llvm-mc -triple=aarch64 -show-encoding  < %s \
+// RUN:        | sed '/.text/d' | sed 's/.*encoding: //g' \
+// RUN:        | llvm-mc -triple=aarch64  -disassemble -show-encoding \
+// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING
+
+//------------------------------------------------------------------------------
+// Armv9.7-A FEAT_SCR2_EL3
+//------------------------------------------------------------------------------
+
+mrs x0, SCR2_EL3
+// CHECK-INST:  mrs x0, SCR2_EL3
+// CHECK-ENCODING: [0x40,0x12,0x3e,0xd5]
+// CHECK-UNKNOWN: d53e1240
+
+msr SCR2_EL3, x0
+// CHECK-INST: msr SCR2_EL3, x0
+// CHECK-ENCODING: [0x40,0x12,0x1e,0xd5]
+// CHECK-UNKNOWN: d51e1240

``````````

</details>


https://github.com/llvm/llvm-project/pull/180918


More information about the llvm-commits mailing list