summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Target/AArch64/AArch64InstrInfo.td2
-rw-r--r--llvm/test/MC/AArch64/basic-a64-instructions.s4
-rw-r--r--llvm/test/MC/AArch64/speculation-barriers.s (renamed from llvm/test/MC/AArch64/csdb.s)7
-rw-r--r--llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt2
-rw-r--r--llvm/test/MC/Disassembler/AArch64/speculation-barriers.txt (renamed from llvm/test/MC/Disassembler/AArch64/csdb.txt)7
5 files changed, 17 insertions, 5 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64InstrInfo.td b/llvm/lib/Target/AArch64/AArch64InstrInfo.td
index f6b798724d3..f424fa27f2f 100644
--- a/llvm/lib/Target/AArch64/AArch64InstrInfo.td
+++ b/llvm/lib/Target/AArch64/AArch64InstrInfo.td
@@ -650,6 +650,8 @@ def SB : SimpleSystemI<0, (ins), "sb", "">, Sched<[]> {
def : InstAlias<"clrex", (CLREX 0xf)>;
def : InstAlias<"isb", (ISB 0xf)>;
+def : InstAlias<"ssbb", (DSB 0)>;
+def : InstAlias<"pssbb", (DSB 4)>;
def MRS : MRSI;
def MSR : MSRI;
diff --git a/llvm/test/MC/AArch64/basic-a64-instructions.s b/llvm/test/MC/AArch64/basic-a64-instructions.s
index 46b2397ec73..07afdba8c37 100644
--- a/llvm/test/MC/AArch64/basic-a64-instructions.s
+++ b/llvm/test/MC/AArch64/basic-a64-instructions.s
@@ -3482,6 +3482,7 @@ _func:
// CHECK: clrex // encoding: [0x5f,0x3f,0x03,0xd5]
dsb #0
+ dsb #4
dsb #12
dsb #15
dsb oshld
@@ -3496,7 +3497,8 @@ _func:
dsb ld
dsb st
dsb sy
-// CHECK: dsb #0 // encoding: [0x9f,0x30,0x03,0xd5]
+// CHECK: ssbb // encoding: [0x9f,0x30,0x03,0xd5]
+// CHECK: pssbb // encoding: [0x9f,0x34,0x03,0xd5]
// CHECK: dsb #12 // encoding: [0x9f,0x3c,0x03,0xd5]
// CHECK: dsb sy // encoding: [0x9f,0x3f,0x03,0xd5]
// CHECK: dsb oshld // encoding: [0x9f,0x31,0x03,0xd5]
diff --git a/llvm/test/MC/AArch64/csdb.s b/llvm/test/MC/AArch64/speculation-barriers.s
index bc52280ba85..0ab3fe7923e 100644
--- a/llvm/test/MC/AArch64/csdb.s
+++ b/llvm/test/MC/AArch64/speculation-barriers.s
@@ -1,4 +1,9 @@
// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding < %s | FileCheck %s
- csdb
+csdb
+ssbb
+pssbb
+
// CHECK: csdb // encoding: [0x9f,0x22,0x03,0xd5]
+// CHECK: ssbb // encoding: [0x9f,0x30,0x03,0xd5]
+// CHECK: pssbb // encoding: [0x9f,0x34,0x03,0xd5]
diff --git a/llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt b/llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
index 33b8d6b4de4..74edc4c4a54 100644
--- a/llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
+++ b/llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
@@ -3048,7 +3048,6 @@
0x5f 0x37 0x3 0xd5
0x5f 0x3f 0x3 0xd5
-# CHECK: dsb #0
# CHECK: dsb #12
# CHECK: dsb sy
# CHECK: dsb oshld
@@ -3063,7 +3062,6 @@
# CHECK: dsb ld
# CHECK: dsb st
# CHECK: dsb sy
-0x9f 0x30 0x3 0xd5
0x9f 0x3c 0x3 0xd5
0x9f 0x3f 0x3 0xd5
0x9f 0x31 0x3 0xd5
diff --git a/llvm/test/MC/Disassembler/AArch64/csdb.txt b/llvm/test/MC/Disassembler/AArch64/speculation-barriers.txt
index ca78f765122..19070a0217d 100644
--- a/llvm/test/MC/Disassembler/AArch64/csdb.txt
+++ b/llvm/test/MC/Disassembler/AArch64/speculation-barriers.txt
@@ -1,4 +1,9 @@
# RUN: llvm-mc -triple aarch64-none-linux-gnu --disassemble < %s | FileCheck %s
[0x9f,0x22,0x03,0xd5]
-# CHECK: csdb
+[0x9f,0x30,0x03,0xd5]
+[0x9f,0x34,0x03,0xd5]
+
+# CHECK: csdb
+# CHECK-NEXT: ssbb
+# CHECK-NEXT: pssbb
OpenPOWER on IntegriCloud