mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-02 10:33:53 +00:00
Add recognition and verification of new llvm.stacksave/llvm.stackrestore intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25266 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2113db8b3f
commit
71d0e3de8d
@ -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