diff options
author | Bill Wendling <isanbard@gmail.com> | 2011-10-07 21:25:38 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2011-10-07 21:25:38 +0000 |
commit | 7ecfbd90efab1bdb9a2ed3e0eed5b24350fbafa0 (patch) | |
tree | f0097c3abd50b8526203be9021f5b35603407fe2 /llvm/lib/CodeGen | |
parent | 13d3f8657706d4e6c98df24bc778b976e239adcd (diff) | |
download | bcm5719-llvm-7ecfbd90efab1bdb9a2ed3e0eed5b24350fbafa0.tar.gz bcm5719-llvm-7ecfbd90efab1bdb9a2ed3e0eed5b24350fbafa0.zip |
Thread the chain through the eh.sjlj.setjmp intrinsic, like it's documented to
do. This will be useful later on with the new SJLJ stuff.
llvm-svn: 141416
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index 3886a710b52..c3a0df3333c 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -4744,8 +4744,14 @@ SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I, unsigned Intrinsic) { return 0; } case Intrinsic::eh_sjlj_setjmp: { - setValue(&I, DAG.getNode(ISD::EH_SJLJ_SETJMP, dl, MVT::i32, getRoot(), - getValue(I.getArgOperand(0)))); + SDValue Ops[2]; + Ops[0] = getRoot(); + Ops[1] = getValue(I.getArgOperand(0)); + SDValue Op = DAG.getNode(ISD::EH_SJLJ_SETJMP, dl, + DAG.getVTList(MVT::i32, MVT::Other), + Ops, 2); + setValue(&I, Op.getValue(0)); + DAG.setRoot(Op.getValue(1)); return 0; } case Intrinsic::eh_sjlj_longjmp: { |