Changes in directory llvm/lib/VMCore:
Function.cpp updated: 1.96 -> 1.97 Verifier.cpp updated: 1.138 -> 1.139 --- Log message: Add recognition and verification of new llvm.stacksave/llvm.stackrestore intrinsics --- Diffs of the changes: (+18 -4) Function.cpp | 10 ++++++---- Verifier.cpp | 12 ++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) Index: llvm/lib/VMCore/Function.cpp diff -u llvm/lib/VMCore/Function.cpp:1.96 llvm/lib/VMCore/Function.cpp:1.97 --- llvm/lib/VMCore/Function.cpp:1.96 Fri Nov 11 10:46:18 2005 +++ llvm/lib/VMCore/Function.cpp Thu Jan 12 20:15:39 2006 @@ -249,10 +249,12 @@ if (getName() == "llvm.readcyclecounter") return Intrinsic::readcyclecounter; break; case 's': - if (getName() == "llvm.setjmp") return Intrinsic::setjmp; - if (getName() == "llvm.sigsetjmp") return Intrinsic::sigsetjmp; - if (getName() == "llvm.siglongjmp") return Intrinsic::siglongjmp; - if (getName() == "llvm.sqrt") return Intrinsic::sqrt; + if (getName() == "llvm.setjmp") return Intrinsic::setjmp; + if (getName() == "llvm.sigsetjmp") return Intrinsic::sigsetjmp; + if (getName() == "llvm.siglongjmp") return Intrinsic::siglongjmp; + if (getName() == "llvm.stackrestore") return Intrinsic::stackrestore; + if (getName() == "llvm.stacksave") return Intrinsic::stacksave; + if (getName() == "llvm.sqrt") return Intrinsic::sqrt; break; case 'v': if (getName() == "llvm.va_copy") return Intrinsic::vacopy; Index: llvm/lib/VMCore/Verifier.cpp diff -u llvm/lib/VMCore/Verifier.cpp:1.138 llvm/lib/VMCore/Verifier.cpp:1.139 --- llvm/lib/VMCore/Verifier.cpp:1.138 Thu Jan 12 00:17:59 2006 +++ llvm/lib/VMCore/Verifier.cpp Thu Jan 12 20:15:39 2006 @@ -796,6 +796,18 @@ case Intrinsic::memmove: NumArgs = 4; break; case Intrinsic::memset: NumArgs = 4; break; + case Intrinsic::stacksave: + NumArgs = 0; + Assert1(CI.getType() == PointerType::get(Type::SByteTy), + "llvm.stacksave must return an sbyte*", &CI); + break; + case Intrinsic::stackrestore: + NumArgs = 1; + Assert1(CI.getOperand(1)->getType() == PointerType::get(Type::SByteTy), + "llvm.stackrestore must take an sbyte*", &CI); + Assert1(CI.getType() == Type::VoidTy, + "llvm.stackrestore return void", &CI); + break; case Intrinsic::prefetch: NumArgs = 3; break; case Intrinsic::pcmarker: NumArgs = 1; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits