diff options
author | Bill Wendling <isanbard@gmail.com> | 2007-11-13 00:44:25 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2007-11-13 00:44:25 +0000 |
commit | f359fed9f972ae2c825c86895751611d1fa05ded (patch) | |
tree | aa7d3df5d4f4edd9812f3ee142378b95f4bd9402 /llvm/lib/Target/ARM/ARMISelLowering.cpp | |
parent | 4a158f37f9e0437ce823afbdc0ae1502947c89f3 (diff) | |
download | bcm5719-llvm-f359fed9f972ae2c825c86895751611d1fa05ded.tar.gz bcm5719-llvm-f359fed9f972ae2c825c86895751611d1fa05ded.zip |
Unify CALLSEQ_{START,END}. They take 4 parameters: the chain, two stack
adjustment fields, and an optional flag. If there is a "dynamic_stackalloc" in
the code, make sure that it's bracketed by CALLSEQ_START and CALLSEQ_END. If
not, then there is the potential for the stack to be changed while the stack's
being used by another instruction (like a call).
This can only result in tears...
llvm-svn: 44037
Diffstat (limited to 'llvm/lib/Target/ARM/ARMISelLowering.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMISelLowering.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp index fd2550229e3..d1cd8c0c636 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -605,10 +605,10 @@ SDOperand ARMTargetLowering::LowerCALL(SDOperand Op, SelectionDAG &DAG) { Chain = DAG.getNode(CallOpc, NodeTys, &Ops[0], Ops.size()); InFlag = Chain.getValue(1); - SDOperand CSOps[] = { Chain, DAG.getConstant(NumBytes, MVT::i32), InFlag }; - Chain = DAG.getNode(ISD::CALLSEQ_END, - DAG.getNodeValueTypes(MVT::Other, MVT::Flag), - ((RetVT != MVT::Other) ? 2 : 1), CSOps, 3); + Chain = DAG.getCALLSEQ_END(Chain, + DAG.getConstant(NumBytes, MVT::i32), + DAG.getConstant(0, MVT::i32), + InFlag); if (RetVT != MVT::Other) InFlag = Chain.getValue(1); |