forked from OSchip/llvm-project
[ARM][Thumb2] support .w assembler qualifier for dmb/dsb/isb
Support the explicit wide assembler qualifier for the dmb/dsb/isb synchronization barrier instructions. Differential revision: https://reviews.llvm.org/D75143
This commit is contained in:
parent
b4207e705b
commit
2f95d5f103
|
@ -4894,9 +4894,15 @@ def : t2InstAlias<"tst${p} $Rn, $Rm",
|
|||
(t2TSTrr rGPR:$Rn, rGPR:$Rm, pred:$p)>;
|
||||
|
||||
// Memory barriers
|
||||
def : InstAlias<"dmb${p}.w\t$opt", (t2DMB memb_opt:$opt, pred:$p), 0>, Requires<[HasDB]>;
|
||||
def : InstAlias<"dmb${p}", (t2DMB 0xf, pred:$p), 0>, Requires<[HasDB]>;
|
||||
def : InstAlias<"dmb${p}.w", (t2DMB 0xf, pred:$p), 0>, Requires<[HasDB]>;
|
||||
def : InstAlias<"dsb${p}.w\t$opt", (t2DSB memb_opt:$opt, pred:$p), 0>, Requires<[HasDB]>;
|
||||
def : InstAlias<"dsb${p}", (t2DSB 0xf, pred:$p), 0>, Requires<[HasDB]>;
|
||||
def : InstAlias<"dsb${p}.w", (t2DSB 0xf, pred:$p), 0>, Requires<[HasDB]>;
|
||||
def : InstAlias<"isb${p}.w\t$opt", (t2ISB memb_opt:$opt, pred:$p), 0>, Requires<[HasDB]>;
|
||||
def : InstAlias<"isb${p}", (t2ISB 0xf, pred:$p), 0>, Requires<[HasDB]>;
|
||||
def : InstAlias<"isb${p}.w", (t2ISB 0xf, pred:$p), 0>, Requires<[HasDB]>;
|
||||
|
||||
// Non-predicable aliases of a predicable DSB: the predicate is (14, 0) where
|
||||
// 14 = AL (always execute) and 0 = "instruction doesn't read the CPSR".
|
||||
|
|
|
@ -674,6 +674,7 @@ adds sp, #-4096
|
|||
dmb #0x0
|
||||
|
||||
dmb sy
|
||||
dmb.w sy
|
||||
dmb st
|
||||
dmb sh
|
||||
dmb ish
|
||||
|
@ -686,6 +687,7 @@ adds sp, #-4096
|
|||
dmb osh
|
||||
dmb oshst
|
||||
dmb
|
||||
dmb.w
|
||||
|
||||
@ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]
|
||||
@ CHECK: dmb st @ encoding: [0xbf,0xf3,0x5e,0x8f]
|
||||
|
@ -704,6 +706,7 @@ adds sp, #-4096
|
|||
@ CHECK: dmb #0x1 @ encoding: [0xbf,0xf3,0x51,0x8f]
|
||||
@ CHECK: dmb #0x0 @ encoding: [0xbf,0xf3,0x50,0x8f]
|
||||
|
||||
@ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]
|
||||
@ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]
|
||||
@ CHECK: dmb st @ encoding: [0xbf,0xf3,0x5e,0x8f]
|
||||
@ CHECK: dmb ish @ encoding: [0xbf,0xf3,0x5b,0x8f]
|
||||
|
@ -717,6 +720,7 @@ adds sp, #-4096
|
|||
@ CHECK: dmb osh @ encoding: [0xbf,0xf3,0x53,0x8f]
|
||||
@ CHECK: dmb oshst @ encoding: [0xbf,0xf3,0x52,0x8f]
|
||||
@ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]
|
||||
@ CHECK: dmb sy @ encoding: [0xbf,0xf3,0x5f,0x8f]
|
||||
|
||||
|
||||
@------------------------------------------------------------------------------
|
||||
|
@ -740,6 +744,7 @@ adds sp, #-4096
|
|||
dsb #0x0
|
||||
|
||||
dsb sy
|
||||
dsb.w sy
|
||||
dsb st
|
||||
dsb sh
|
||||
dsb ish
|
||||
|
@ -752,6 +757,7 @@ adds sp, #-4096
|
|||
dsb osh
|
||||
dsb oshst
|
||||
dsb
|
||||
dsb.w
|
||||
|
||||
@ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]
|
||||
@ CHECK: dsb st @ encoding: [0xbf,0xf3,0x4e,0x8f]
|
||||
|
@ -770,6 +776,7 @@ adds sp, #-4096
|
|||
@ CHECK: dsb #0x1 @ encoding: [0xbf,0xf3,0x41,0x8f]
|
||||
@ CHECK: ssbb @ encoding: [0xbf,0xf3,0x40,0x8f]
|
||||
|
||||
@ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]
|
||||
@ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]
|
||||
@ CHECK: dsb st @ encoding: [0xbf,0xf3,0x4e,0x8f]
|
||||
@ CHECK: dsb ish @ encoding: [0xbf,0xf3,0x4b,0x8f]
|
||||
|
@ -783,6 +790,7 @@ adds sp, #-4096
|
|||
@ CHECK: dsb osh @ encoding: [0xbf,0xf3,0x43,0x8f]
|
||||
@ CHECK: dsb oshst @ encoding: [0xbf,0xf3,0x42,0x8f]
|
||||
@ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]
|
||||
@ CHECK: dsb sy @ encoding: [0xbf,0xf3,0x4f,0x8f]
|
||||
|
||||
|
||||
@------------------------------------------------------------------------------
|
||||
|
@ -809,10 +817,14 @@ adds sp, #-4096
|
|||
@ ISB
|
||||
@------------------------------------------------------------------------------
|
||||
isb sy
|
||||
isb.w sy
|
||||
isb
|
||||
isb.w
|
||||
isb #15
|
||||
isb #1
|
||||
|
||||
@ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]
|
||||
@ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]
|
||||
@ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]
|
||||
@ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]
|
||||
@ CHECK: isb sy @ encoding: [0xbf,0xf3,0x6f,0x8f]
|
||||
|
|
Loading…
Reference in New Issue