llvm-6502/test
Peter Collingbourne d8ae3e1fee x86_64: Fix calls to __morestack under the large code model.
Under the large code model, we cannot assume that __morestack lives within
2^31 bytes of the call site, so we cannot use pc-relative addressing. We
cannot perform the call via a temporary register, as the rax register may
be used to store the static chain, and all other suitable registers may be
either callee-save or used for parameter passing. We cannot use the stack
at this point either because __morestack manipulates the stack directly.

To avoid these issues, perform an indirect call via a read-only memory
location containing the address.

This solution is not perfect, as it assumes that the .rodata section
is laid out within 2^31 bytes of each function body, but this seems to
be sufficient for JIT.

Differential Revision: http://reviews.llvm.org/D6787

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225003 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-30 20:05:19 +00:00
..
Analysis
Assembler
Bindings [OCaml] Fix bitrot in tests. 2014-12-30 03:24:14 +00:00
Bitcode
BugPoint
CodeGen x86_64: Fix calls to __morestack under the large code model. 2014-12-30 20:05:19 +00:00
DebugInfo Band-aid fix for PR22032: don't emit DWARF debug info if AddressSanitizer is enabled on Windows 2014-12-26 17:00:51 +00:00
ExecutionEngine
Feature
FileCheck
Instrumentation [asan] change _sanitizer_cov_module_init to accept int* instead of int** 2014-12-30 19:29:28 +00:00
Integer
JitListener
Linker
LTO
MC [COFF] Don't try to add quotes to already quoted linker directives 2014-12-30 19:23:48 +00:00
Object
Other
SymbolRewriter
TableGen
tools
Transforms Carry facts about nullness and undef across GC relocation 2014-12-29 23:27:30 +00:00
Unit
Verifier
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg
lit.site.cfg.in [lit] Make config.llvm_lib_dir available on cmake, too. 2014-12-30 03:24:11 +00:00
Makefile [lit] Make config.llvm_lib_dir available on cmake, too. 2014-12-30 03:24:11 +00:00
Makefile.tests
TestRunner.sh