Add XLForm_1_ext template, patch by Nicolas Geoffray.
authorChris Lattner <sabre@nondot.org>
Sun, 25 Feb 2007 05:07:49 +0000 (05:07 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 25 Feb 2007 05:07:49 +0000 (05:07 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34573 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCInstrFormats.td

index fc03653c24d58c32287acf751c09bb708ec6a592..6a4a59b593c244bf0e513770c2e6c28213e56350 100644 (file)
@@ -349,21 +349,31 @@ class DSS_Form<bits<10> xo, dag OL, string asmstr,
 
 // 1.7.7 XL-Form
 class XLForm_1<bits<6> opcode, bits<10> xo, dag OL, string asmstr,
-               InstrItinClass itin>
+               InstrItinClass itin, list<dag> pattern>
+    : I<opcode, OL, asmstr, itin> {
+  bits<5> CRD;
+  bits<5> CRA;
+  bits<5> CRB;
+  
+  let Pattern = pattern;
+  
+  let Inst{6-10}  = CRD;
+  let Inst{11-15} = CRA;
+  let Inst{16-20} = CRB;
+  let Inst{21-30} = xo;
+  let Inst{31}    = 0;
+}
+
+class XLForm_1_ext<bits<6> opcode, bits<10> xo, dag OL, string asmstr,
+               InstrItinClass itin, list<dag> pattern>
     : I<opcode, OL, asmstr, itin> {
-  bits<3> CRD;
-  bits<2> CRDb;
-  bits<3> CRA;
-  bits<2> CRAb;
-  bits<3> CRB;
-  bits<2> CRBb;
-  
-  let Inst{6-8}   = CRD;
-  let Inst{9-10}  = CRDb;
-  let Inst{11-13} = CRA;
-  let Inst{14-15} = CRAb;
-  let Inst{16-18} = CRB;
-  let Inst{19-20} = CRBb;
+  bits<5> CRD;
+  
+  let Pattern = pattern;
+  
+  let Inst{6-10}  = CRD;
+  let Inst{11-15} = CRD;
+  let Inst{16-20} = CRD;
   let Inst{21-30} = xo;
   let Inst{31}    = 0;
 }