summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-09-08 17:01:54 +0000
committerChris Lattner <sabre@nondot.org>2005-09-08 17:01:54 +0000
commitcf9b0e66735a66cd69ce3080304a48f897528583 (patch)
treec7892121e82e58b3f1bbe4716fc9dfa46fff503d
parentf18935a59828e5ca01c6546b7e2d9fb19b1ea4c5 (diff)
downloadbcm5719-llvm-cf9b0e66735a66cd69ce3080304a48f897528583.tar.gz
bcm5719-llvm-cf9b0e66735a66cd69ce3080304a48f897528583.zip
Add patterns for some new instructions, allowing the use of the ineg fragment.
llvm-svn: 23266
-rw-r--r--llvm/lib/Target/PowerPC/PowerPCInstrFormats.td4
-rw-r--r--llvm/lib/Target/PowerPC/PowerPCInstrInfo.td16
2 files changed, 10 insertions, 10 deletions
diff --git a/llvm/lib/Target/PowerPC/PowerPCInstrFormats.td b/llvm/lib/Target/PowerPC/PowerPCInstrFormats.td
index 0f709e1968a..1475f7ad03b 100644
--- a/llvm/lib/Target/PowerPC/PowerPCInstrFormats.td
+++ b/llvm/lib/Target/PowerPC/PowerPCInstrFormats.td
@@ -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;
}
diff --git a/llvm/lib/Target/PowerPC/PowerPCInstrInfo.td b/llvm/lib/Target/PowerPC/PowerPCInstrInfo.td
index 30167698fb6..1ffca1d3775 100644
--- a/llvm/lib/Target/PowerPC/PowerPCInstrInfo.td
+++ b/llvm/lib/Target/PowerPC/PowerPCInstrInfo.td
@@ -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.
OpenPOWER on IntegriCloud