mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-18 12:29:21 +00:00
Pass in argc & argv
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9563 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4963dcf584
commit
c0204e0b73
@ -101,11 +101,30 @@ void FunctionProfiler::insertInitializationCall(Function *MainFn,
|
||||
Args[0] = Constant::getNullValue(Type::IntTy);
|
||||
Args[1] = Constant::getNullValue(ArgVTy);
|
||||
|
||||
/* FIXME: We should pass in the command line arguments here! */
|
||||
// Skip over any allocas in the entry block.
|
||||
BasicBlock *Entry = MainFn->begin();
|
||||
BasicBlock::iterator InsertPos = Entry->begin();
|
||||
while (isa<AllocaInst>(InsertPos)) ++InsertPos;
|
||||
|
||||
Function::aiterator AI;
|
||||
switch (MainFn->asize()) {
|
||||
default:
|
||||
case 2:
|
||||
AI = MainFn->abegin(); ++AI;
|
||||
if (AI->getType() != ArgVTy) {
|
||||
Args[1] = new CastInst(AI, ArgVTy, "argv.cast", InsertPos);
|
||||
} else {
|
||||
Args[1] = AI;
|
||||
}
|
||||
|
||||
case 1:
|
||||
AI = MainFn->abegin();
|
||||
if (AI->getType() != Type::IntTy) {
|
||||
Args[0] = new CastInst(AI, Type::IntTy, "argc.cast", InsertPos);
|
||||
} else {
|
||||
Args[0] = AI;
|
||||
}
|
||||
|
||||
case 0:
|
||||
break;
|
||||
}
|
||||
@ -118,10 +137,5 @@ void FunctionProfiler::insertInitializationCall(Function *MainFn,
|
||||
cast<ArrayType>(Array->getType()->getElementType())->getNumElements();
|
||||
Args[3] = ConstantUInt::get(Type::UIntTy, NumElements);
|
||||
|
||||
// Skip over any allocas in the entry block.
|
||||
BasicBlock *Entry = MainFn->begin();
|
||||
BasicBlock::iterator InsertPos = Entry->begin();
|
||||
while (isa<AllocaInst>(InsertPos)) ++InsertPos;
|
||||
|
||||
new CallInst(InitFn, Args, "", InsertPos);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user