In some cases, due to scheduling constraints we copy the EFLAGS.
authorNadav Rotem <nrotem@apple.com>
Fri, 21 Dec 2012 23:48:49 +0000 (23:48 +0000)
committerNadav Rotem <nrotem@apple.com>
Fri, 21 Dec 2012 23:48:49 +0000 (23:48 +0000)
commitd0696ef8c33b9b2504e89bc0aab2ea99a6c90756
tree6d9b823ad7696ccdc6ea1f61fb5aa78ce3afbb64
parentdbf51ee4596791d8cf38538b80805b2c3a577836
In some cases, due to scheduling constraints we copy the EFLAGS.
The only way to read the eflags is using push and pop. If we don't
adjust the stack then we run over the first frame index. This is
not something that we want to do, so we have to make sure that
our machine function does not copy the flags. If it does then
we have to emit the prolog that adjusts the stack.

rdar://12896831

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170961 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86FrameLowering.cpp
lib/Target/X86/X86InstrInfo.cpp
test/CodeGen/X86/clobber-fi0.ll [new file with mode: 0644]