diff options
| author | Chris Lattner <sabre@nondot.org> | 2006-01-15 09:02:48 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2006-01-15 09:02:48 +0000 |
| commit | 5bd514d7b04cb42aa9ce70ca4fa06931cf25a28e (patch) | |
| tree | ac109a6d968bb3473d8e1818ca6d3ab3a6ee64fa /llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp | |
| parent | 78c358d1adf0224a1d4d4c3556ea5e1489682592 (diff) | |
| download | bcm5719-llvm-5bd514d7b04cb42aa9ce70ca4fa06931cf25a28e.tar.gz bcm5719-llvm-5bd514d7b04cb42aa9ce70ca4fa06931cf25a28e.zip | |
Use the default impl of DYNAMIC_STACKALLOC, allowing us to delete some code.
llvm-svn: 25334
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp')
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp b/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp index 2d74a3259aa..92512cc7a6a 100644 --- a/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp +++ b/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp @@ -96,7 +96,6 @@ namespace { #include "PPCGenDAGISel.inc" private: - SDOperand SelectDYNAMIC_STACKALLOC(SDOperand Op); SDOperand SelectADD_PARTS(SDOperand Op); SDOperand SelectSUB_PARTS(SDOperand Op); SDOperand SelectSETCC(SDOperand Op); @@ -531,42 +530,6 @@ static unsigned getCRIdxForSetCC(ISD::CondCode CC, bool& Inv) { return 0; } -SDOperand PPCDAGToDAGISel::SelectDYNAMIC_STACKALLOC(SDOperand Op) { - SDNode *N = Op.Val; - - // FIXME: We are currently ignoring the requested alignment for handling - // greater than the stack alignment. This will need to be revisited at some - // point. Align = N.getOperand(2); - if (!isa<ConstantSDNode>(N->getOperand(2)) || - cast<ConstantSDNode>(N->getOperand(2))->getValue() != 0) { - std::cerr << "Cannot allocate stack object with greater alignment than" - << " the stack alignment yet!"; - abort(); - } - SDOperand Chain = Select(N->getOperand(0)); - SDOperand Amt = Select(N->getOperand(1)); - - SDOperand R1Reg = CurDAG->getRegister(PPC::R1, MVT::i32); - - SDOperand R1Val = CurDAG->getCopyFromReg(Chain, PPC::R1, MVT::i32); - Chain = R1Val.getValue(1); - - // Subtract the amount (guaranteed to be a multiple of the stack alignment) - // from the stack pointer, giving us the result pointer. - SDOperand Result = CurDAG->getTargetNode(PPC::SUBF, MVT::i32, Amt, R1Val); - - // Copy this result back into R1. - Chain = CurDAG->getNode(ISD::CopyToReg, MVT::Other, Chain, R1Reg, Result); - - // Copy this result back out of R1 to make sure we're not using the stack - // space without decrementing the stack pointer. - Result = CurDAG->getCopyFromReg(Chain, PPC::R1, MVT::i32); - - // Finally, replace the DYNAMIC_STACKALLOC with the copyfromreg. - CodeGenMap[Op.getValue(0)] = Result; - CodeGenMap[Op.getValue(1)] = Result.getValue(1); - return SDOperand(Result.Val, Op.ResNo); -} SDOperand PPCDAGToDAGISel::SelectADD_PARTS(SDOperand Op) { SDNode *N = Op.Val; @@ -854,7 +817,6 @@ SDOperand PPCDAGToDAGISel::Select(SDOperand Op) { switch (N->getOpcode()) { default: break; - case ISD::DYNAMIC_STACKALLOC: return SelectDYNAMIC_STACKALLOC(Op); case ISD::ADD_PARTS: return SelectADD_PARTS(Op); case ISD::SUB_PARTS: return SelectSUB_PARTS(Op); case ISD::SETCC: return SelectSETCC(Op); |

