Thumb2 parsing and encoding for ISB.
authorJim Grosbach <grosbach@apple.com>
Tue, 6 Sep 2011 22:53:27 +0000 (22:53 +0000)
committerJim Grosbach <grosbach@apple.com>
Tue, 6 Sep 2011 22:53:27 +0000 (22:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139200 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMInstrThumb2.td
test/MC/ARM/basic-thumb2-instructions.s

index 7fcb4b07e563f021aff96dc9fef0d8cafddecc36..fbaea3a4bdb3dd715898d1afd0558ff6a9d51637 100644 (file)
@@ -2794,20 +2794,19 @@ def t2DMB : AInoP<(outs), (ins memb_opt:$opt), ThumbFrm, NoItinerary,
 }
 
 def t2DSB : AInoP<(outs), (ins memb_opt:$opt), ThumbFrm, NoItinerary,
-                  "dsb", "\t$opt",
-                  [/* For disassembly only; pattern left blank */]>,
+                  "dsb", "\t$opt", []>,
                   Requires<[IsThumb, HasDB]> {
   bits<4> opt;
   let Inst{31-4} = 0xf3bf8f4;
   let Inst{3-0} = opt;
 }
 
-// ISB has only full system option -- for disassembly only
-def t2ISB : AInoP<(outs), (ins), ThumbFrm, NoItinerary, "isb", "",
-                  [/* For disassembly only; pattern left blank */]>,
-                  Requires<[IsThumb2, HasV7]> {
+def t2ISB : AInoP<(outs), (ins memb_opt:$opt), ThumbFrm, NoItinerary,
+                  "isb", "\t$opt",
+                  []>, Requires<[IsThumb2, HasV7]> {
+  bits<4> opt;
   let Inst{31-4} = 0xf3bf8f6;
-  let Inst{3-0} = 0b1111;
+  let Inst{3-0} = opt;
 }
 
 class T2I_ldrex<bits<2> opcod, dag oops, dag iops, AddrMode am, int sz,
@@ -3591,4 +3590,4 @@ def : t2InstAlias<"tst${p} $Rn, $Rm",
 // Memory barriers
 def : InstAlias<"dmb", (t2DMB 0xf)>, Requires<[IsThumb2, HasDB]>;
 def : InstAlias<"dsb", (t2DSB 0xf)>, Requires<[IsThumb2, HasDB]>;
-//def : InstAlias<"isb", (t2ISB 0xf)>, Requires<[IsThumb2, HasDB]>;
+def : InstAlias<"isb", (t2ISB 0xf)>, Requires<[IsThumb2, HasDB]>;
index becba5b9f917a4211f746194f457c041144e01a7..55ec15093bcd8ccb0fe4d349aa1cbce26a933ea8 100644 (file)
@@ -452,6 +452,16 @@ _func:
 @ CHECK: eor.w r4, r5, r6, ror #5      @ encoding: [0x85,0xea,0x76,0x14]
 
 
+@------------------------------------------------------------------------------
+@ ISB
+@------------------------------------------------------------------------------
+        isb sy
+        isb
+
+@ CHECK: isb   sy                      @ encoding: [0xbf,0xf3,0x6f,0x8f]
+@ CHECK: isb   sy                      @ encoding: [0xbf,0xf3,0x6f,0x8f]
+
+
 @------------------------------------------------------------------------------
 @ IT
 @------------------------------------------------------------------------------