mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-04 03:06:28 +00:00
Add recognition and verification of new llvm.stacksave/llvm.stackrestore intrinsics
llvm-svn: 25266
This commit is contained in:
parent
6f8204560f
commit
e13a03d217
@ -249,10 +249,12 @@ unsigned Function::getIntrinsicID() const {
|
||||
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;
|
||||
|
@ -796,6 +796,18 @@ void Verifier::visitIntrinsicFunctionCall(Intrinsic::ID ID, CallInst &CI) {
|
||||
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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user