diff options
| author | Chris Lattner <sabre@nondot.org> | 2003-05-17 22:26:33 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2003-05-17 22:26:33 +0000 |
| commit | c436b37262fd1552fd591f50e14a7ff0067465e2 (patch) | |
| tree | c9269f027b23d129cc50c7037d6e1e837498825e /lib/VMCore | |
| parent | 9b11f4871162d911f372cef1586fdd17910ed58f (diff) | |
| download | external_llvm-c436b37262fd1552fd591f50e14a7ff0067465e2.zip external_llvm-c436b37262fd1552fd591f50e14a7ff0067465e2.tar.gz external_llvm-c436b37262fd1552fd591f50e14a7ff0067465e2.tar.bz2 | |
Add support for setjmp/longjmp primitives
Patch checked in for Bill Wendling :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6241 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore')
| -rw-r--r-- | lib/VMCore/Function.cpp | 22 | ||||
| -rw-r--r-- | lib/VMCore/Verifier.cpp | 4 |
2 files changed, 12 insertions, 14 deletions
diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp index 0d5f90b..89195a3 100644 --- a/lib/VMCore/Function.cpp +++ b/lib/VMCore/Function.cpp @@ -164,20 +164,16 @@ unsigned Function::getIntrinsicID() const { return 0; // All intrinsics start with 'llvm.' switch (getName()[5]) { + case 'l': + if (getName() == "llvm.longjmp") return LLVMIntrinsic::longjmp; + break; + case 's': + if (getName() == "llvm.setjmp") return LLVMIntrinsic::setjmp; + break; case 'v': - if (getName().size() >= 9) { - switch (getName()[8]) { - case 's': - if (getName() == "llvm.va_start") return LLVMIntrinsic::va_start; - break; - case 'e': - if (getName() == "llvm.va_end") return LLVMIntrinsic::va_end; - break; - case 'c': - if (getName() == "llvm.va_copy") return LLVMIntrinsic::va_copy; - break; - } - } + if (getName() == "llvm.va_copy") return LLVMIntrinsic::va_copy; + if (getName() == "llvm.va_end") return LLVMIntrinsic::va_end; + if (getName() == "llvm.va_start") return LLVMIntrinsic::va_start; break; } // The "llvm." namespace is reserved! diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp index 7dc870f..54f8f05 100644 --- a/lib/VMCore/Verifier.cpp +++ b/lib/VMCore/Verifier.cpp @@ -517,8 +517,10 @@ void Verifier::visitIntrinsicFunctionCall(LLVMIntrinsic::ID ID, CallInst &CI) { " args!", &CI); NumArgs = 1; break; - case LLVMIntrinsic::va_end: NumArgs = 1; break; + case LLVMIntrinsic::va_end: NumArgs = 1; break; case LLVMIntrinsic::va_copy: NumArgs = 2; break; + case LLVMIntrinsic::setjmp: NumArgs = 1; break; + case LLVMIntrinsic::longjmp: NumArgs = 2; break; case LLVMIntrinsic::not_intrinsic: assert(0 && "Invalid intrinsic!"); NumArgs = 0; break; } |
