summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-10-25 20:41:46 +0000
committerChris Lattner <sabre@nondot.org>2005-10-25 20:41:46 +0000
commitcd7f101c9a69c45bf502665a201f6d870476cc9a (patch)
treed338d680c62e4434aad9d3069e931f699e9bd902 /llvm/lib
parent26ee5953f7c6a6b31b6f865b709e3747cf6a1f59 (diff)
downloadbcm5719-llvm-cd7f101c9a69c45bf502665a201f6d870476cc9a.tar.gz
bcm5719-llvm-cd7f101c9a69c45bf502665a201f6d870476cc9a.zip
Autogen a few new ppc-specific nodes
llvm-svn: 23985
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp12
-rw-r--r--llvm/lib/Target/PowerPC/PPCInstrInfo.td14
2 files changed, 11 insertions, 15 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp b/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
index d299b79104b..138ac9d3699 100644
--- a/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
+++ b/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
@@ -903,18 +903,6 @@ SDOperand PPCDAGToDAGISel::Select(SDOperand Op) {
Select(N->getOperand(1)), Select(N->getOperand(2)));
return SDOperand(N, 0);
}
- case PPCISD::FCFID:
- CurDAG->SelectNodeTo(N, PPC::FCFID, N->getValueType(0),
- Select(N->getOperand(0)));
- return SDOperand(N, 0);
- case PPCISD::FCTIDZ:
- CurDAG->SelectNodeTo(N, PPC::FCTIDZ, N->getValueType(0),
- Select(N->getOperand(0)));
- return SDOperand(N, 0);
- case PPCISD::FCTIWZ:
- CurDAG->SelectNodeTo(N, PPC::FCTIWZ, N->getValueType(0),
- Select(N->getOperand(0)));
- return SDOperand(N, 0);
case ISD::FADD: {
MVT::ValueType Ty = N->getValueType(0);
if (!NoExcessFPPrecision) { // Match FMA ops
diff --git a/llvm/lib/Target/PowerPC/PPCInstrInfo.td b/llvm/lib/Target/PowerPC/PPCInstrInfo.td
index 0ca271d6317..62a2d28a90d 100644
--- a/llvm/lib/Target/PowerPC/PPCInstrInfo.td
+++ b/llvm/lib/Target/PowerPC/PPCInstrInfo.td
@@ -14,6 +14,14 @@
include "PPCInstrFormats.td"
+//===----------------------------------------------------------------------===//
+// PowerPC specific DAG Nodes.
+//
+
+def PPCfcfid : SDNode<"PPCISD::FCFID" , SDTFPUnaryOp, []>;
+def PPCfctidz : SDNode<"PPCISD::FCTIDZ", SDTFPUnaryOp, []>;
+def PPCfctiwz : SDNode<"PPCISD::FCTIWZ", SDTFPUnaryOp, []>;
+
//===----------------------------------------------------------------------===//
// PowerPC specific transformation functions and pattern fragments.
@@ -449,13 +457,13 @@ def LFDX : XForm_25<31, 599, (ops F8RC:$dst, GPRC:$base, GPRC:$index),
}
def FCFID : XForm_26<63, 846, (ops F8RC:$frD, F8RC:$frB),
"fcfid $frD, $frB", FPGeneral,
- []>, isPPC64;
+ [(set F8RC:$frD, (PPCfcfid F8RC:$frB))]>, isPPC64;
def FCTIDZ : XForm_26<63, 815, (ops F8RC:$frD, F8RC:$frB),
"fctidz $frD, $frB", FPGeneral,
- []>, isPPC64;
+ [(set F8RC:$frD, (PPCfctidz F8RC:$frB))]>, isPPC64;
def FCTIWZ : XForm_26<63, 15, (ops F8RC:$frD, F8RC:$frB),
"fctiwz $frD, $frB", FPGeneral,
- []>;
+ [(set F8RC:$frD, (PPCfctiwz F8RC:$frB))]>;
def FRSP : XForm_26<63, 12, (ops F4RC:$frD, F8RC:$frB),
"frsp $frD, $frB", FPGeneral,
[(set F4RC:$frD, (fround F8RC:$frB))]>;
OpenPOWER on IntegriCloud