llvm-6502/test
Reid Kleckner ec4d326aad Fix miscompile of MS inline assembly with stack realignment
For stack frames requiring realignment, three pointers may be needed:
- ebp to address incoming arguments
- esi (could be any callee-saved register) to address locals
- esp to address outgoing arguments

We would use esi unconditionally without verifying that it did not
conflict with inline assembly.

This change doesn't do the verification, it simply emits a fatal error
on functions that use stack realignment, dynamic SP adjustments, and
inline assembly.

Because stack realignment is common on Windows, we also no longer assume
that MS inline assembly clobbers esp.  Instead, we analyze the inline
instructions for implicit definitions and check if esp is there.  If so,
we require the use of a base pointer and consider it in the condition
above.

Mostly fixes PR16830, but we could try harder to find a non-conflicting
base pointer.

Reviewers: sunfish

Differential Revision: http://llvm-reviews.chandlerc.com/D1317

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196876 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-10 05:12:23 +00:00
..
Analysis
Assembler
Bindings
Bitcode Fixed CRLF 2013-12-08 12:16:20 +00:00
BugPoint
CodeGen Fix miscompile of MS inline assembly with stack realignment 2013-12-10 05:12:23 +00:00
DebugInfo Update testcase for previous commit. 2013-12-10 01:12:16 +00:00
ExecutionEngine Remove empty MCJIT/load-object-a.ll since r196641. 2013-12-07 06:17:10 +00:00
Feature
FileCheck
Instrumentation
Integer
JitListener
Linker
LTO
MC Method parseSetAssignment treats every operand with '$' sign as register and the parsing is directed to set alias for register. This will result in errors reported when expressions containing label references are parsed(for example long jumps) 2013-12-09 11:03:25 +00:00
Object
Other
TableGen
tools llvm-cov: Added -a option for block data. 2013-12-10 01:02:07 +00:00
Transforms Transforms: Don't create bad branch weights when folding a switch 2013-12-10 00:13:41 +00:00
Unit
Verifier
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh