[llvm-commits] CVS: llvm/lib/VMCore/Function.cpp Verifier.cpp
Chris Lattner
lattner at cs.uiuc.edu
Thu Jan 12 18:15:52 PST 2006
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;
More information about the llvm-commits
mailing list