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 | 192623ec93444785a100d64a5a7218dec4d36d1e (patch) | |
tree | 8c68477dbdb5b0f5c3b0ea84cdf9041ab9d09da9 /llvm/lib/VMCore/Function.cpp | |
parent | 0ad4f9cf013d9c91bd1eb1a9bcbf53cc4d1881f9 (diff) | |
download | bcm5719-llvm-192623ec93444785a100d64a5a7218dec4d36d1e.tar.gz bcm5719-llvm-192623ec93444785a100d64a5a7218dec4d36d1e.zip |
Add support for setjmp/longjmp primitives
Patch checked in for Bill Wendling :)
llvm-svn: 6241
Diffstat (limited to 'llvm/lib/VMCore/Function.cpp')
-rw-r--r-- | llvm/lib/VMCore/Function.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/llvm/lib/VMCore/Function.cpp b/llvm/lib/VMCore/Function.cpp index 0d5f90b45df..89195a34a42 100644 --- a/llvm/lib/VMCore/Function.cpp +++ b/llvm/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! |