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 | b6d034a841b6b5c83337b28b22aa88a98133d58b (patch) | |
| tree | 39d4e4388d9059d5c8d7b2468b730b2bc397aa71 /llvm/lib/Target | |
| parent | 99282c7b9278c9cb411a5e03f68c703623738b24 (diff) | |
| download | bcm5719-llvm-b6d034a841b6b5c83337b28b22aa88a98133d58b.tar.gz bcm5719-llvm-b6d034a841b6b5c83337b28b22aa88a98133d58b.zip | |
Add callseq_begin/end support
Call stil not supported yet
llvm-svn: 22998
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp b/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp index d949bce741f..5300f59b89f 100644 --- a/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp +++ b/llvm/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. |

