Handle storing args to the stack for calls.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117055 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Christopher 2010-10-21 20:09:54 +00:00
parent 4da992aeba
commit 5b924809e4

View File

@ -1358,7 +1358,6 @@ bool ARMFastISel::ProcessCallArgs(SmallVectorImpl<Value*> &Args,
}
// Now copy/store arg to correct locations.
// TODO: We need custom lowering for f64 args.
if (VA.isRegLoc() && !VA.needsCustom()) {
BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(TargetOpcode::COPY),
VA.getLocReg())
@ -1380,11 +1379,14 @@ bool ARMFastISel::ProcessCallArgs(SmallVectorImpl<Value*> &Args,
RegArgs.push_back(VA.getLocReg());
RegArgs.push_back(NextVA.getLocReg());
} else {
// Need to store
return false;
assert(VA.isMemLoc());
// Need to store on the stack.
unsigned Base = ARM::SP;
int Offset = VA.getLocMemOffset();
if (!ARMEmitStore(ArgVT, Arg, Base, Offset)) return false;
}
}
return true;
}