use ArgOperand API

llvm-svn: 106945
This commit is contained in:
Gabor Greif 2010-06-26 12:09:10 +00:00
parent 83205af3fa
commit c2ac8c4261
1 changed files with 24 additions and 24 deletions

View File

@ -2889,7 +2889,7 @@ void CWriter::visitCallInst(CallInst &I) {
bool hasByVal = I.hasByValArgument(); bool hasByVal = I.hasByValArgument();
bool isStructRet = I.hasStructRetAttr(); bool isStructRet = I.hasStructRetAttr();
if (isStructRet) { if (isStructRet) {
writeOperandDeref(I.getOperand(1)); writeOperandDeref(I.getArgOperand(0));
Out << " = "; Out << " = ";
} }
@ -2944,8 +2944,8 @@ void CWriter::visitCallInst(CallInst &I) {
} }
unsigned NumDeclaredParams = FTy->getNumParams(); unsigned NumDeclaredParams = FTy->getNumParams();
CallSite CS(&I);
CallSite::arg_iterator AI = I.op_begin()+1, AE = I.op_end(); CallSite::arg_iterator AI = CS.arg_begin(), AE = CS.arg_end();
unsigned ArgNo = 0; unsigned ArgNo = 0;
if (isStructRet) { // Skip struct return argument. if (isStructRet) { // Skip struct return argument.
++AI; ++AI;
@ -2999,7 +2999,7 @@ bool CWriter::visitBuiltinCall(CallInst &I, Intrinsic::ID ID,
Out << "0; "; Out << "0; ";
Out << "va_start(*(va_list*)"; Out << "va_start(*(va_list*)";
writeOperand(I.getOperand(1)); writeOperand(I.getArgOperand(0));
Out << ", "; Out << ", ";
// Output the last argument to the enclosing function. // Output the last argument to the enclosing function.
if (I.getParent()->getParent()->arg_empty()) if (I.getParent()->getParent()->arg_empty())
@ -3009,9 +3009,9 @@ bool CWriter::visitBuiltinCall(CallInst &I, Intrinsic::ID ID,
Out << ')'; Out << ')';
return true; return true;
case Intrinsic::vaend: case Intrinsic::vaend:
if (!isa<ConstantPointerNull>(I.getOperand(1))) { if (!isa<ConstantPointerNull>(I.getArgOperand(0))) {
Out << "0; va_end(*(va_list*)"; Out << "0; va_end(*(va_list*)";
writeOperand(I.getOperand(1)); writeOperand(I.getArgOperand(0));
Out << ')'; Out << ')';
} else { } else {
Out << "va_end(*(va_list*)0)"; Out << "va_end(*(va_list*)0)";
@ -3020,47 +3020,47 @@ bool CWriter::visitBuiltinCall(CallInst &I, Intrinsic::ID ID,
case Intrinsic::vacopy: case Intrinsic::vacopy:
Out << "0; "; Out << "0; ";
Out << "va_copy(*(va_list*)"; Out << "va_copy(*(va_list*)";
writeOperand(I.getOperand(1)); writeOperand(I.getArgOperand(0));
Out << ", *(va_list*)"; Out << ", *(va_list*)";
writeOperand(I.getOperand(2)); writeOperand(I.getArgOperand(1));
Out << ')'; Out << ')';
return true; return true;
case Intrinsic::returnaddress: case Intrinsic::returnaddress:
Out << "__builtin_return_address("; Out << "__builtin_return_address(";
writeOperand(I.getOperand(1)); writeOperand(I.getArgOperand(0));
Out << ')'; Out << ')';
return true; return true;
case Intrinsic::frameaddress: case Intrinsic::frameaddress:
Out << "__builtin_frame_address("; Out << "__builtin_frame_address(";
writeOperand(I.getOperand(1)); writeOperand(I.getArgOperand(0));
Out << ')'; Out << ')';
return true; return true;
case Intrinsic::powi: case Intrinsic::powi:
Out << "__builtin_powi("; Out << "__builtin_powi(";
writeOperand(I.getOperand(1)); writeOperand(I.getArgOperand(0));
Out << ", "; Out << ", ";
writeOperand(I.getOperand(2)); writeOperand(I.getArgOperand(1));
Out << ')'; Out << ')';
return true; return true;
case Intrinsic::setjmp: case Intrinsic::setjmp:
Out << "setjmp(*(jmp_buf*)"; Out << "setjmp(*(jmp_buf*)";
writeOperand(I.getOperand(1)); writeOperand(I.getArgOperand(0));
Out << ')'; Out << ')';
return true; return true;
case Intrinsic::longjmp: case Intrinsic::longjmp:
Out << "longjmp(*(jmp_buf*)"; Out << "longjmp(*(jmp_buf*)";
writeOperand(I.getOperand(1)); writeOperand(I.getArgOperand(0));
Out << ", "; Out << ", ";
writeOperand(I.getOperand(2)); writeOperand(I.getArgOperand(1));
Out << ')'; Out << ')';
return true; return true;
case Intrinsic::prefetch: case Intrinsic::prefetch:
Out << "LLVM_PREFETCH((const void *)"; Out << "LLVM_PREFETCH((const void *)";
writeOperand(I.getOperand(1)); writeOperand(I.getArgOperand(0));
Out << ", "; Out << ", ";
writeOperand(I.getOperand(2)); writeOperand(I.getArgOperand(1));
Out << ", "; Out << ", ";
writeOperand(I.getOperand(3)); writeOperand(I.getArgOperand(2));
Out << ")"; Out << ")";
return true; return true;
case Intrinsic::stacksave: case Intrinsic::stacksave:
@ -3077,7 +3077,7 @@ bool CWriter::visitBuiltinCall(CallInst &I, Intrinsic::ID ID,
printType(Out, I.getType()); printType(Out, I.getType());
Out << ')'; Out << ')';
// Multiple GCC builtins multiplex onto this intrinsic. // Multiple GCC builtins multiplex onto this intrinsic.
switch (cast<ConstantInt>(I.getOperand(3))->getZExtValue()) { switch (cast<ConstantInt>(I.getArgOperand(2))->getZExtValue()) {
default: llvm_unreachable("Invalid llvm.x86.sse.cmp!"); default: llvm_unreachable("Invalid llvm.x86.sse.cmp!");
case 0: Out << "__builtin_ia32_cmpeq"; break; case 0: Out << "__builtin_ia32_cmpeq"; break;
case 1: Out << "__builtin_ia32_cmplt"; break; case 1: Out << "__builtin_ia32_cmplt"; break;
@ -3098,9 +3098,9 @@ bool CWriter::visitBuiltinCall(CallInst &I, Intrinsic::ID ID,
Out << 'd'; Out << 'd';
Out << "("; Out << "(";
writeOperand(I.getOperand(1)); writeOperand(I.getArgOperand(0));
Out << ", "; Out << ", ";
writeOperand(I.getOperand(2)); writeOperand(I.getArgOperand(1));
Out << ")"; Out << ")";
return true; return true;
case Intrinsic::ppc_altivec_lvsl: case Intrinsic::ppc_altivec_lvsl:
@ -3108,7 +3108,7 @@ bool CWriter::visitBuiltinCall(CallInst &I, Intrinsic::ID ID,
printType(Out, I.getType()); printType(Out, I.getType());
Out << ')'; Out << ')';
Out << "__builtin_altivec_lvsl(0, (void*)"; Out << "__builtin_altivec_lvsl(0, (void*)";
writeOperand(I.getOperand(1)); writeOperand(I.getArgOperand(0));
Out << ")"; Out << ")";
return true; return true;
} }
@ -3221,7 +3221,7 @@ void CWriter::visitInlineAsm(CallInst &CI) {
DestVal = ResultVals[ValueCount].first; DestVal = ResultVals[ValueCount].first;
DestValNo = ResultVals[ValueCount].second; DestValNo = ResultVals[ValueCount].second;
} else } else
DestVal = CI.getOperand(ValueCount-ResultVals.size()+1); DestVal = CI.getArgOperand(ValueCount-ResultVals.size());
if (I->isEarlyClobber) if (I->isEarlyClobber)
C = "&"+C; C = "&"+C;
@ -3255,7 +3255,7 @@ void CWriter::visitInlineAsm(CallInst &CI) {
} }
assert(ValueCount >= ResultVals.size() && "Input can't refer to result"); assert(ValueCount >= ResultVals.size() && "Input can't refer to result");
Value *SrcVal = CI.getOperand(ValueCount-ResultVals.size()+1); Value *SrcVal = CI.getArgOperand(ValueCount-ResultVals.size());
Out << "\"" << C << "\"("; Out << "\"" << C << "\"(";
if (!I->isIndirect) if (!I->isIndirect)