diff options
author | Chris Lattner <sabre@nondot.org> | 2005-08-24 00:47:15 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-08-24 00:47:15 +0000 |
commit | a2590c5b3eaa24002e3f83f146f0e5b6c95a89c8 (patch) | |
tree | 28c09139582612a60ca80030cba290faf822a7ba | |
parent | 82cfa5d616ff0f760425cbf6e2983fbab618fbda (diff) |
Add callseq_begin/end support
Call stil not supported yet
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22998 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/PowerPC/PPCISelDAGToDAG.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp index d949bce741..5300f59b89 100644 --- a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp +++ b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp @@ -920,6 +920,16 @@ SDOperand PPC32DAGToDAGISel::Select(SDOperand Op) { AddrOp1, AddrOp2, Select(N->getOperand(0))); break; } + + case ISD::CALLSEQ_START: + case ISD::CALLSEQ_END: { + unsigned Amt = cast<ConstantSDNode>(N->getOperand(1))->getValue(); + unsigned Opc = N->getOpcode() == ISD::CALLSEQ_START ? + PPC::ADJCALLSTACKDOWN : PPC::ADJCALLSTACKUP; + CurDAG->SelectNodeTo(N, MVT::Other, Opc, Select(N->getOperand(0)), + getI32Imm(Amt)); + break; + } case ISD::RET: { SDOperand Chain = Select(N->getOperand(0)); // Token chain. |