diff options
author | John Criswell <criswell@uiuc.edu> | 2004-04-14 13:46:52 +0000 |
---|---|---|
committer | John Criswell <criswell@uiuc.edu> | 2004-04-14 13:46:52 +0000 |
commit | 23c48d63d660ab1aeb948a1b4f8c14a4bc7b0802 (patch) | |
tree | 31086b34e274ac60d361bcb9b3ac96b328ccf168 /llvm/lib/VMCore/Verifier.cpp | |
parent | 6679e46b592fb8a9976b88b8e2ea35d829c00339 (diff) | |
download | bcm5719-llvm-23c48d63d660ab1aeb948a1b4f8c14a4bc7b0802.tar.gz bcm5719-llvm-23c48d63d660ab1aeb948a1b4f8c14a4bc7b0802.zip |
Finish adding the llvm.readio and llvm.writeio intrinsics.
Sorry these didn't get in yesterday.
llvm-svn: 12942
Diffstat (limited to 'llvm/lib/VMCore/Verifier.cpp')
-rw-r--r-- | llvm/lib/VMCore/Verifier.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/lib/VMCore/Verifier.cpp b/llvm/lib/VMCore/Verifier.cpp index f40ffe0a13b..fc237e69e51 100644 --- a/llvm/lib/VMCore/Verifier.cpp +++ b/llvm/lib/VMCore/Verifier.cpp @@ -618,14 +618,36 @@ void Verifier::visitIntrinsicFunctionCall(Intrinsic::ID ID, CallInst &CI) { NumArgs = 2; break; + case Intrinsic::writeio: + Assert1(FT->getNumParams() == 2, + "Illegal # arguments for intrinsic function!", IF); + Assert1(FT->getParamType(0)->isFirstClassType(), + "First argument not a first class type!", IF); + Assert1(FT->getParamType(1)->getPrimitiveID() == Type::PointerTyID, + "Second argument not a pointer!", IF); + NumArgs = 2; + break; + case Intrinsic::readport: Assert1(FT->getNumParams() == 1, "Illegal # arguments for intrinsic function!", IF); + Assert1(FT->getReturnType()->isFirstClassType(), + "Return type is not a first class type!", IF); Assert1(FT->getParamType(0)->isUnsigned(), "First argument not unsigned int!", IF); NumArgs = 1; break; + case Intrinsic:: readio: + Assert1(FT->getNumParams() == 1, + "Illegal # arguments for intrinsic function!", IF); + Assert1(FT->getReturnType()->isFirstClassType(), + "Return type is not a first class type!", IF); + Assert1(FT->getParamType(0)->getPrimitiveID() == Type::PointerTyID, + "First argument not a pointer!", IF); + NumArgs = 1; + break; + case Intrinsic::setjmp: NumArgs = 1; break; case Intrinsic::longjmp: NumArgs = 2; break; case Intrinsic::sigsetjmp: NumArgs = 2; break; |