summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86FrameLowering.cpp
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2016-03-25 01:10:56 +0000
committerHans Wennborg <hans@hanshq.net>2016-03-25 01:10:56 +0000
commit4ae5119eeba206e2b1d88491e8ed76ed0f80721f (patch)
treef6dbb98d4d296d8e03752195c99274ab4b233bd2 /llvm/lib/Target/X86/X86FrameLowering.cpp
parent9651813ee0d9633e12accb7ae673a8a3b944f35c (diff)
downloadbcm5719-llvm-4ae5119eeba206e2b1d88491e8ed76ed0f80721f.tar.gz
bcm5719-llvm-4ae5119eeba206e2b1d88491e8ed76ed0f80721f.zip
X86: Use push-pop for materializing 8-bit immediates for minsize (take 2)
This is the same as r255936, with added logic for avoiding clobbering of the red zone (PR26023). Differential Revision: http://reviews.llvm.org/D18246 llvm-svn: 264375
Diffstat (limited to 'llvm/lib/Target/X86/X86FrameLowering.cpp')
-rw-r--r--llvm/lib/Target/X86/X86FrameLowering.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86FrameLowering.cpp b/llvm/lib/Target/X86/X86FrameLowering.cpp
index dd8b8134c43..9beb916d23d 100644
--- a/llvm/lib/Target/X86/X86FrameLowering.cpp
+++ b/llvm/lib/Target/X86/X86FrameLowering.cpp
@@ -958,6 +958,7 @@ void X86FrameLowering::emitPrologue(MachineFunction &MF,
!MF.shouldSplitStack()) { // Regular stack
uint64_t MinSize = X86FI->getCalleeSavedFrameSize();
if (HasFP) MinSize += SlotSize;
+ X86FI->setUsesRedZone(MinSize > 0 || StackSize > 0);
StackSize = std::max(MinSize, StackSize > 128 ? StackSize - 128 : 0);
MFI->setStackSize(StackSize);
}
OpenPOWER on IntegriCloud