aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
diff options
context:
space:
mode:
authorEli Bendersky <eliben@chromium.org>2013-05-09 15:16:09 -0700
committerEli Bendersky <eliben@chromium.org>2013-05-09 15:16:09 -0700
commit42ac59f56fb0d473f84b6be738a64e80b09557d1 (patch)
tree14b1e8cdea77da4c187478579140f2ca5e2ef73f /lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
parent4d0b8cd45df240218ff2e59a640912961072c681 (diff)
Support @llvm.nacl.{set|long}jmp intrinsics by translating them to library calls
This is similar to the way @llvm.{set|long}jmp are handled. The previously defined nacl-specific intrinsics are no longer used and are overridden. For the library call, call setjmp/longjmp without a preceding underscore as these symbols exist in our runtime support code (pnacl/support/setjmp_XXX.S) BUG=https://code.google.com/p/nativeclient/issues/detail?id=3429 R=mseaborn@chromium.org Review URL: https://codereview.chromium.org/14715018
Diffstat (limited to 'lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp')
-rw-r--r--lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
index b7a7e2e133..9113fb1b6f 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -5215,6 +5215,13 @@ SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I, unsigned Intrinsic) {
setValue(&I, DAG.getNode(ISD::NACL_TARGET_ARCH, dl, DestVT));
return 0;
}
+ // Native Client Intrinsics for setjmp/longjmp
+ case Intrinsic::nacl_setjmp: {
+ return "setjmp";
+ }
+ case Intrinsic::nacl_longjmp: {
+ return "longjmp";
+ }
// @LOCALMOD-END
}
}