diff options
author | Chris Lattner <sabre@nondot.org> | 2003-06-29 16:42:32 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-06-29 16:42:32 +0000 |
commit | c151e4f415da15d17eee60720c396e7103fcc02d (patch) | |
tree | 7ba8c56c387d261b1ff55ec1a3b37ced950b0e4d | |
parent | dbb6cd12ebf2429ea7f4f632c4447951b870d0ff (diff) | |
download | external_llvm-c151e4f415da15d17eee60720c396e7103fcc02d.zip external_llvm-c151e4f415da15d17eee60720c396e7103fcc02d.tar.gz external_llvm-c151e4f415da15d17eee60720c396e7103fcc02d.tar.bz2 |
Until there is a setjmp/longjmp transformation pass, codegen setjmp as a noop
and longjmp as an abort!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6977 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/X86/InstSelectSimple.cpp | 4 | ||||
-rw-r--r-- | lib/Target/X86/X86ISelSimple.cpp | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/lib/Target/X86/InstSelectSimple.cpp b/lib/Target/X86/InstSelectSimple.cpp index 0566def..e57a6ab 100644 --- a/lib/Target/X86/InstSelectSimple.cpp +++ b/lib/Target/X86/InstSelectSimple.cpp @@ -978,6 +978,10 @@ void ISel::visitIntrinsicCall(LLVMIntrinsic::ID ID, CallInst &CI) { addDirectMem(BuildMI(BB, X86::MOVrm32, 5), TmpReg2).addReg(TmpReg1); return; + case LLVMIntrinsic::longjmp: + BuildMI(X86::CALLpcrel32, 1).addExternalSymbol("abort", true); + case LLVMIntrinsic::setjmp: + return; default: assert(0 && "Unknown intrinsic for X86!"); } } diff --git a/lib/Target/X86/X86ISelSimple.cpp b/lib/Target/X86/X86ISelSimple.cpp index 0566def..e57a6ab 100644 --- a/lib/Target/X86/X86ISelSimple.cpp +++ b/lib/Target/X86/X86ISelSimple.cpp @@ -978,6 +978,10 @@ void ISel::visitIntrinsicCall(LLVMIntrinsic::ID ID, CallInst &CI) { addDirectMem(BuildMI(BB, X86::MOVrm32, 5), TmpReg2).addReg(TmpReg1); return; + case LLVMIntrinsic::longjmp: + BuildMI(X86::CALLpcrel32, 1).addExternalSymbol("abort", true); + case LLVMIntrinsic::setjmp: + return; default: assert(0 && "Unknown intrinsic for X86!"); } } |