Set instruction size correctly in XCoreInstrFormats.td
authorRichard Osborne <richard@xmos.com>
Sun, 16 Dec 2012 16:46:24 +0000 (16:46 +0000)
committerRichard Osborne <richard@xmos.com>
Sun, 16 Dec 2012 16:46:24 +0000 (16:46 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170289 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/XCore/XCoreInstrFormats.td

index 1963a70fb30d45dacb911ab4a24b7011ac5607fa..5eb4ff1d7f92b4b350af37456bec9b83b4bc44d4 100644 (file)
@@ -10,7 +10,7 @@
 //===----------------------------------------------------------------------===//
 // Instruction format superclass
 //===----------------------------------------------------------------------===//
-class InstXCore<dag outs, dag ins, string asmstr, list<dag> pattern>
+class InstXCore<int sz, dag outs, dag ins, string asmstr, list<dag> pattern>
     : Instruction {
   field bits<32> Inst;
 
@@ -19,102 +19,103 @@ class InstXCore<dag outs, dag ins, string asmstr, list<dag> pattern>
   dag InOperandList = ins;
   let AsmString   = asmstr;
   let Pattern = pattern;
+  let Size = sz;
 }
 
 // XCore pseudo instructions format
 class PseudoInstXCore<dag outs, dag ins, string asmstr, list<dag> pattern>
-   : InstXCore<outs, ins, asmstr, pattern>;
+   : InstXCore<0, outs, ins, asmstr, pattern>;
 
 //===----------------------------------------------------------------------===//
 // Instruction formats
 //===----------------------------------------------------------------------===//
 
 class _F3R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<2, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _FL3R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<4, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _F2RUS<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<2, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _FL2RUS<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<4, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _FRU6<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<2, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _FLRU6<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<4, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _FU6<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<2, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _FLU6<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<4, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _FU10<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<2, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _FLU10<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<4, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _F2R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<2, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _FRUS<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<2, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _FL2R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<4, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _F1R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<2, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _F0R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<2, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _L4R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<4, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _L5R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<4, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }
 
 class _L6R<dag outs, dag ins, string asmstr, list<dag> pattern>
-    : InstXCore<outs, ins, asmstr, pattern> {
+    : InstXCore<4, outs, ins, asmstr, pattern> {
   let Inst{31-0} = 0;
 }