diff options
author | Eric Christopher <echristo@apple.com> | 2010-10-11 21:20:02 +0000 |
---|---|---|
committer | Eric Christopher <echristo@apple.com> | 2010-10-11 21:20:02 +0000 |
commit | 71ef1af66bcd8f08549b74693dc8b300fb1a7dd0 (patch) | |
tree | 498162638b22e67d4f6b0914a68b49f0ad07d346 /llvm/lib | |
parent | 7cba5a76ddc10199f49b5f37afcc2a0929259836 (diff) | |
download | bcm5719-llvm-71ef1af66bcd8f08549b74693dc8b300fb1a7dd0.tar.gz bcm5719-llvm-71ef1af66bcd8f08549b74693dc8b300fb1a7dd0.zip |
Make sure that the call stack adjustments have default operands. Also
leave custom lowerings for later.
Fixes some nightly tests.
llvm-svn: 116232
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/ARM/ARMFastISel.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/llvm/lib/Target/ARM/ARMFastISel.cpp b/llvm/lib/Target/ARM/ARMFastISel.cpp index fa85c9366bc..cfe21c0df7b 100644 --- a/llvm/lib/Target/ARM/ARMFastISel.cpp +++ b/llvm/lib/Target/ARM/ARMFastISel.cpp @@ -1229,8 +1229,9 @@ bool ARMFastISel::ProcessCallArgs(SmallVectorImpl<Value*> &Args, // Issue CALLSEQ_START unsigned AdjStackDown = TM.getRegisterInfo()->getCallFrameSetupOpcode(); - BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(AdjStackDown)) - .addImm(NumBytes); + AddOptionalDefs(BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, + TII.get(AdjStackDown)) + .addImm(NumBytes)); // Process the args. for (unsigned i = 0, e = ArgLocs.size(); i != e; ++i) { @@ -1247,7 +1248,8 @@ bool ARMFastISel::ProcessCallArgs(SmallVectorImpl<Value*> &Args, } // Now copy/store arg to correct locations. - if (VA.isRegLoc()) { + // 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()) .addReg(Arg); @@ -1266,8 +1268,9 @@ bool ARMFastISel::FinishCall(EVT RetVT, SmallVectorImpl<unsigned> &UsedRegs, unsigned &NumBytes) { // Issue CALLSEQ_END unsigned AdjStackUp = TM.getRegisterInfo()->getCallFrameDestroyOpcode(); - BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(AdjStackUp)) - .addImm(NumBytes).addImm(0); + AddOptionalDefs(BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, + TII.get(AdjStackUp)) + .addImm(NumBytes).addImm(0)); // Now the return value. if (RetVT.getSimpleVT().SimpleTy != MVT::isVoid) { |