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/Function.cpp | |
parent | 9b11f4871162d911f372cef1586fdd17910ed58f (diff) |
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/Function.cpp')
-rw-r--r-- | lib/VMCore/Function.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp index 0d5f90b45d..89195a34a4 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! |