mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-21 21:29:41 +00:00
Make sure the LR gets pushed in functions that use vaargs. This fixes
400.perlbench for the nightly tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98183 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
004453e85e
commit
f49be7c96f
@ -590,6 +590,10 @@ ARMBaseRegisterInfo::processFunctionBeforeCalleeSavedScan(MachineFunction &MF,
|
||||
AFI->isThumb2Function())
|
||||
MF.getRegInfo().setPhysRegUsed(ARM::R4);
|
||||
|
||||
// Spill LR if Thumb1 function uses variable length argument lists.
|
||||
if (AFI->isThumb1OnlyFunction() && AFI->getVarArgsRegSaveSize() > 0)
|
||||
MF.getRegInfo().setPhysRegUsed(ARM::LR);
|
||||
|
||||
// Don't spill FP if the frame can be eliminated. This is determined
|
||||
// by scanning the callee-save registers to see if any is used.
|
||||
const unsigned *CSRegs = getCalleeSavedRegs();
|
||||
|
Loading…
x
Reference in New Issue
Block a user