"Function return type does not match operand "
"type of return inst!", &RI, F->getReturnType());
- // Check to make sure that the return value has neccesary properties for
+ // Check to make sure that the return value has necessary properties for
// terminators...
visitTerminatorInst(RI);
}
Assert1(IF->isExternal(), "Intrinsic functions should never be defined!", IF);
unsigned NumArgs = 0;
+ // FIXME: this should check the return type of each intrinsic as well, also
+ // arguments!
switch (ID) {
case LLVMIntrinsic::va_start:
Assert1(CI.getParent()->getParent()->getFunctionType()->isVarArg(),
" args!", &CI);
NumArgs = 1;
break;
- case LLVMIntrinsic::va_end: NumArgs = 1; break;
- case LLVMIntrinsic::va_copy: NumArgs = 2; break;
- case LLVMIntrinsic::setjmp: NumArgs = 1; break;
- case LLVMIntrinsic::longjmp: NumArgs = 2; break;
+ case LLVMIntrinsic::va_end: NumArgs = 1; break;
+ case LLVMIntrinsic::va_copy: NumArgs = 2; break;
+
+ case LLVMIntrinsic::setjmp: NumArgs = 1; break;
+ case LLVMIntrinsic::longjmp: NumArgs = 2; break;
+ case LLVMIntrinsic::sigsetjmp: NumArgs = 2; break;
+ case LLVMIntrinsic::siglongjmp: NumArgs = 2; break;
- case LLVMIntrinsic::alpha_ctlz: NumArgs = 1; break;
- case LLVMIntrinsic::alpha_cttz: NumArgs = 1; break;
- case LLVMIntrinsic::alpha_ctpop: NumArgs = 1; break;
- case LLVMIntrinsic::alpha_umulh: NumArgs = 2; break;
+ case LLVMIntrinsic::alpha_ctlz: NumArgs = 1; break;
+ case LLVMIntrinsic::alpha_cttz: NumArgs = 1; break;
+ case LLVMIntrinsic::alpha_ctpop: NumArgs = 1; break;
+ case LLVMIntrinsic::alpha_umulh: NumArgs = 2; break;
+ case LLVMIntrinsic::alpha_vecop: NumArgs = 4; break;
+ case LLVMIntrinsic::alpha_pup: NumArgs = 3; break;
+ case LLVMIntrinsic::alpha_bytezap: NumArgs = 2; break;
+ case LLVMIntrinsic::alpha_bytemanip: NumArgs = 3; break;
+ case LLVMIntrinsic::alpha_dfpbop: NumArgs = 3; break;
+ case LLVMIntrinsic::alpha_dfpuop: NumArgs = 2; break;
+ case LLVMIntrinsic::alpha_unordered: NumArgs = 2; break;
+ case LLVMIntrinsic::alpha_uqtodfp: NumArgs = 2; break;
+ case LLVMIntrinsic::alpha_uqtosfp: NumArgs = 2; break;
+ case LLVMIntrinsic::alpha_dfptosq: NumArgs = 2; break;
+ case LLVMIntrinsic::alpha_sfptosq: NumArgs = 2; break;
case LLVMIntrinsic::not_intrinsic:
assert(0 && "Invalid intrinsic!"); NumArgs = 0; break;
// Implement the public interfaces to this file...
//===----------------------------------------------------------------------===//
-Pass *createVerifierPass() {
+FunctionPass *createVerifierPass() {
return new Verifier();
}