Add patterns for some new instructions, allowing the use of the ineg fragment.
authorChris Lattner <sabre@nondot.org>
Thu, 8 Sep 2005 17:01:54 +0000 (17:01 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 8 Sep 2005 17:01:54 +0000 (17:01 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23266 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCInstrFormats.td
lib/Target/PowerPC/PPCInstrInfo.td

index 0f709e1968a93ef09a41e299e4937af808a2efcb..1475f7ad03b6782e6c988afbecdfb8b21241e90d 100644 (file)
@@ -449,8 +449,8 @@ class XOForm_1<bits<6> opcode, bits<9> xo, bit oe, dag OL, string asmstr,
 }
 
 class XOForm_3<bits<6> opcode, bits<9> xo, bit oe, 
-               dag OL, string asmstr>
-  : XOForm_1<opcode, xo, oe, OL, asmstr, []> {
+               dag OL, string asmstr, list<dag> pattern>
+  : XOForm_1<opcode, xo, oe, OL, asmstr, pattern> {
   let RB = 0;
 }
 
index 30167698fb6c25d855c184b3c87daf84c04f7bc9..1ffca1d3775650ac963f94ddc68e1e718ed226f9 100644 (file)
@@ -60,10 +60,6 @@ def vtFP       : PatLeaf<(vt),  [{ return MVT::isFloatingPoint(N->getVT()); }]>;
 def not  : PatFrag<(ops node:$in), (xor node:$in, immAllOnes)>;
 def ineg : PatFrag<(ops node:$in), (sub immZero, node:$in)>;
 
-
-
-
-
 class isPPC64 { bit PPC64 = 1; }
 class isVMX   { bit VMX = 1; }
 class isDOT   {
@@ -476,13 +472,17 @@ def SUBFE : XOForm_1<31, 136, 0, (ops GPRC:$rT, GPRC:$rA, GPRC:$rB),
                      "subfe $rT, $rA, $rB",
                      []>;
 def ADDME  : XOForm_3<31, 234, 0, (ops GPRC:$rT, GPRC:$rA),
-                      "addme $rT, $rA">;
+                      "addme $rT, $rA",
+                      []>;
 def ADDZE  : XOForm_3<31, 202, 0, (ops GPRC:$rT, GPRC:$rA),
-                      "addze $rT, $rA">;
+                      "addze $rT, $rA",
+                      []>;
 def NEG    : XOForm_3<31, 104, 0, (ops GPRC:$rT, GPRC:$rA),
-                      "neg $rT, $rA">;
+                      "neg $rT, $rA",
+                      [(set GPRC:$rT, (ineg GPRC:$rA))]>;
 def SUBFZE : XOForm_3<31, 200, 0, (ops GPRC:$rT, GPRC:$rA),
-                      "subfze $rT, $rA">;
+                      "subfze $rT, $rA",
+                      []>;
 
 // A-Form instructions.  Most of the instructions executed in the FPU are of
 // this type.