diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-12-02 12:46:23 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-12-02 12:46:23 +0000 |
commit | edad5bcb76bf472a1487c0f3dd94a5914213a647 (patch) | |
tree | 63c3f98843d0debbfd390005cf8e05250cd3fe28 /lib/Target/Mips/MipsSEFrameLowering.cpp | |
parent | 0bc1bd0d3931803dc6a26d35758f93527359bcdb (diff) | |
download | src-edad5bcb76bf472a1487c0f3dd94a5914213a647.tar.gz src-edad5bcb76bf472a1487c0f3dd94a5914213a647.zip |
Vendor import of llvm release_50 branch r319231:vendor/llvm/llvm-release_50-r319231
Notes
Notes:
svn path=/vendor/llvm/dist/; revision=326460
svn path=/vendor/llvm/llvm-release_50-r319231/; revision=326461; tag=vendor/llvm/llvm-release_50-r319231
Diffstat (limited to 'lib/Target/Mips/MipsSEFrameLowering.cpp')
-rw-r--r-- | lib/Target/Mips/MipsSEFrameLowering.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/Target/Mips/MipsSEFrameLowering.cpp b/lib/Target/Mips/MipsSEFrameLowering.cpp index 102ebb21609a..735461c2a797 100644 --- a/lib/Target/Mips/MipsSEFrameLowering.cpp +++ b/lib/Target/Mips/MipsSEFrameLowering.cpp @@ -894,10 +894,12 @@ void MipsSEFrameLowering::determineCalleeSaves(MachineFunction &MF, } // Set scavenging frame index if necessary. - uint64_t MaxSPOffset = MF.getInfo<MipsFunctionInfo>()->getIncomingArgSize() + - estimateStackSize(MF); + uint64_t MaxSPOffset = estimateStackSize(MF); - if (isInt<16>(MaxSPOffset)) + // MSA has a minimum offset of 10 bits signed. If there is a variable + // sized object on the stack, the estimation cannot account for it. + if (isIntN(STI.hasMSA() ? 10 : 16, MaxSPOffset) && + !MF.getFrameInfo().hasVarSizedObjects()) return; const TargetRegisterClass &RC = |