LLVM backend for 6502
Go to file
Ulrich Weigand 68b292b026 [PowerPC] ELFv2 dynamic loader support
This patch enables the new ELFv2 ABI in the runtime dynamic loader.
The loader has to implement the following features:
- In the ELFv2 ABI, do not look up a function descriptor in .opd, but
  instead use the local entry point when resolving a direct call.
- Update the TOC restore code to use the new TOC slot linkage area
  offset.
- Create PLT stubs appropriate for the ELFv2 ABI.

Note that this patch also adds common-code changes. These are necessary
because the loader must check the newly added ELF flags: the e_flags
header bits encoding the ABI version, and the st_other symbol table
entry bits encoding the local entry point offset.  There is currently
no way to access these, so I've added ObjectFile::getPlatformFlags and
SymbolRef::getOther accessors.

Reviewed by Hal Finkel.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213491 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-20 23:53:14 +00:00
autoconf Drop the udis86 wrapper from llvm::sys 2014-07-17 20:05:29 +00:00
bindings MergedLoadStoreMotion pass 2014-07-18 19:13:09 +00:00
cmake CMake: avoid a reconfigure loop from r213091 2014-07-15 22:11:54 +00:00
docs [C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ranges. 2014-07-20 09:10:11 +00:00
examples [CMake] Update libdeps. 2014-07-14 05:01:53 +00:00
include [PowerPC] ELFv2 dynamic loader support 2014-07-20 23:53:14 +00:00
lib [PowerPC] ELFv2 dynamic loader support 2014-07-20 23:53:14 +00:00
projects Remove projects/sample. 2014-03-12 22:40:22 +00:00
test [PowerPC] ELFv2 stack space reduction 2014-07-20 23:43:15 +00:00
tools [C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ranges. 2014-07-20 09:10:11 +00:00
unittests unittests: Actually test reverse iterators in Path tests 2014-07-16 08:18:58 +00:00
utils Remove uses of the redundant ".reset(nullptr)" of unique_ptr, in favor of ".reset()" 2014-07-19 01:05:11 +00:00
.arcconfig Updated phabricator server. 2014-04-07 03:57:04 +00:00
.clang-format Test commit. 2014-03-02 13:08:46 +00:00
.gitignore Add Polly to the ignored trees. 2014-06-25 13:13:36 +00:00
CMakeLists.txt [CMake] Introduce LLVM_SHLIB_OUTPUT_INTDIR. 2014-07-04 04:23:26 +00:00
CODE_OWNERS.TXT Make myself code owner of MCJIT. 2014-07-17 20:23:31 +00:00
configure Touch configure to force clang's config.h.in reconfiguration on the build servers 2014-06-06 10:36:38 +00:00
CREDITS.TXT Update Credits. 2014-05-29 19:59:58 +00:00
LICENSE.TXT Remove projects/sample. 2014-03-12 22:40:22 +00:00
llvm.spec.in
LLVMBuild.txt
Makefile [configure/make] Propagate names of build host tools when making BuildTools 2014-03-25 21:45:41 +00:00
Makefile.common
Makefile.config.in Track clang r213171 2014-07-16 16:50:34 +00:00
Makefile.rules [Make] Fix dependencies for td.expanded 2014-06-20 19:00:41 +00:00
README.txt Trivial test commit. 2014-04-26 19:05:45 +00:00

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.