[llvm] 19c516c - [AArch64] Add DC CIGDPAPA and DC CIPAPA instructions (#122718)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 14 00:35:39 PST 2025
Author: Jonathan Thackray
Date: 2025-01-14T08:35:36Z
New Revision: 19c516c8d5716c3ab7ceb5c01705c9dc9a7e6c0a
URL: https://github.com/llvm/llvm-project/commit/19c516c8d5716c3ab7ceb5c01705c9dc9a7e6c0a
DIFF: https://github.com/llvm/llvm-project/commit/19c516c8d5716c3ab7ceb5c01705c9dc9a7e6c0a.diff
LOG: [AArch64] Add DC CIGDPAPA and DC CIPAPA instructions (#122718)
Add `DC CIGDPAPA` and `DC CIPAPA` instructions, for the RME extension,
which was added as part of Armv9.1-A, but these instructions were
missed.
Added:
Modified:
llvm/lib/Target/AArch64/AArch64SystemOperands.td
llvm/test/MC/AArch64/armv9.1a-rme.s
llvm/test/MC/Disassembler/AArch64/armv9a-rme.txt
Removed:
################################################################################
diff --git a/llvm/lib/Target/AArch64/AArch64SystemOperands.td b/llvm/lib/Target/AArch64/AArch64SystemOperands.td
index df5db8fa514a1b..8f6c593d3e681f 100644
--- a/llvm/lib/Target/AArch64/AArch64SystemOperands.td
+++ b/llvm/lib/Target/AArch64/AArch64SystemOperands.td
@@ -246,6 +246,11 @@ def : DC<"CIPAE", 0b100, 0b0111, 0b1110, 0b000>;
def : DC<"CIGDPAE", 0b100, 0b0111, 0b1110, 0b111>;
}
+let Requires = [{ {AArch64::FeatureRME} }] in {
+def : DC<"CIGDPAPA", 0b110, 0b0111, 0b1110, 0b101>;
+def : DC<"CIPAPA", 0b110, 0b0111, 0b1110, 0b001>;
+}
+
let Requires = [{ {AArch64::FeatureOCCMO} }] in {
// Outer cacheable CMO (FEAT_OCCMO)
def : DC<"CIVAOC", 0b011, 0b0111, 0b1111, 0b000>;
diff --git a/llvm/test/MC/AArch64/armv9.1a-rme.s b/llvm/test/MC/AArch64/armv9.1a-rme.s
index 80b1d7d57a4631..5f455fbb569c21 100644
--- a/llvm/test/MC/AArch64/armv9.1a-rme.s
+++ b/llvm/test/MC/AArch64/armv9.1a-rme.s
@@ -68,3 +68,8 @@ sys #6, c8, c7, #4
// CHECK-NO-RME: sys #6, c8, c4, #7
// CHECK-NO-RME: sys #6, c8, c1, #4
// CHECK-NO-RME: sys #6, c8, c7, #4
+
+dc cigdpapa, x0
+dc cipapa, x0
+// CHECK: dc cigdpapa, x0 // encoding: [0xa0,0x7e,0x0e,0xd5]
+// CHECK: dc cipapa, x0 // encoding: [0x20,0x7e,0x0e,0xd5]
diff --git a/llvm/test/MC/Disassembler/AArch64/armv9a-rme.txt b/llvm/test/MC/Disassembler/AArch64/armv9a-rme.txt
index 25812004be2c05..00572be6f91a0b 100644
--- a/llvm/test/MC/Disassembler/AArch64/armv9a-rme.txt
+++ b/llvm/test/MC/Disassembler/AArch64/armv9a-rme.txt
@@ -23,3 +23,10 @@
# CHECK-NO-RME: sys #6, c8, c4, #7
# CHECK-NO-RME: sys #6, c8, c1, #4
# CHECK-NO-RME: sys #6, c8, c7, #4
+
+[0xa0,0x7e,0x0e,0xd5]
+[0x20,0x7e,0x0e,0xd5]
+# CHECK: dc cigdpapa, x0
+# CHECK: dc cipapa, x0
+# CHECK-NO-RME: sys #6, c7, c14, #5, x0
+# CHECK-NO-RME: sys #6, c7, c14, #1, x0
More information about the llvm-commits
mailing list