From 42ac59f56fb0d473f84b6be738a64e80b09557d1 Mon Sep 17 00:00:00 2001 From: Eli Bendersky Date: Thu, 9 May 2013 15:16:09 -0700 Subject: 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 --- lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp') 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 } } -- cgit v1.2.3-18-g5258