diff options
| author | Chris Lattner <sabre@nondot.org> | 2005-10-25 20:41:46 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2005-10-25 20:41:46 +0000 |
| commit | cd7f101c9a69c45bf502665a201f6d870476cc9a (patch) | |
| tree | d338d680c62e4434aad9d3069e931f699e9bd902 /llvm/lib/Target | |
| parent | 26ee5953f7c6a6b31b6f865b709e3747cf6a1f59 (diff) | |
| download | bcm5719-llvm-cd7f101c9a69c45bf502665a201f6d870476cc9a.tar.gz bcm5719-llvm-cd7f101c9a69c45bf502665a201f6d870476cc9a.zip | |
Autogen a few new ppc-specific nodes
llvm-svn: 23985
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp | 12 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCInstrInfo.td | 14 |
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))]>; |

