aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/PrologEpilogInserter.cpp
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2009-07-16 22:34:45 +0000
committerDale Johannesen <dalej@apple.com>2009-07-16 22:34:45 +0000
commit423ccfe51daa699a969cd716ce3a69cb2ada6234 (patch)
tree9a55d62a65db0f37ffe35ee31ce16d4a51df4f07 /lib/CodeGen/PrologEpilogInserter.cpp
parent3ac1ab835caacdeebbd0d7b4d69160f283928d21 (diff)
downloadexternal_llvm-423ccfe51daa699a969cd716ce3a69cb2ada6234.zip
external_llvm-423ccfe51daa699a969cd716ce3a69cb2ada6234.tar.gz
external_llvm-423ccfe51daa699a969cd716ce3a69cb2ada6234.tar.bz2
Assume an inline asm might be a call, so we get
stack alignment right when it is. This is not ideal but conservatively correct. Adjust a test to compensate for changed stack offset value. gcc.apple/asm-block-57.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76120 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/PrologEpilogInserter.cpp')
-rw-r--r--lib/CodeGen/PrologEpilogInserter.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/CodeGen/PrologEpilogInserter.cpp b/lib/CodeGen/PrologEpilogInserter.cpp
index 970e395..546a84e 100644
--- a/lib/CodeGen/PrologEpilogInserter.cpp
+++ b/lib/CodeGen/PrologEpilogInserter.cpp
@@ -148,6 +148,10 @@ void PEI::calculateCallsInformation(MachineFunction &Fn) {
if (Size > MaxCallFrameSize) MaxCallFrameSize = Size;
HasCalls = true;
FrameSDOps.push_back(I);
+ } else if (I->getOpcode() == TargetInstrInfo::INLINEASM) {
+ // An InlineAsm might be a call; assume it is to get the stack frame
+ // aligned correctly for calls.
+ HasCalls = true;
}
MachineFrameInfo *FFI = Fn.getFrameInfo();