llvm-6502/lib
Ulrich Weigand fe7131e2d0 [PowerPC] Support ELFv1/ELFv2 ABI selection via features
While LLVM now supports both ELFv1 and ELFv2 ABIs, their use is currently
hard-coded via the target triple: powerpc64-linux is always ELFv1, while
powerpc64le-linux is always ELFv2.

These are of course the most common scenarios, but in principle it is
possible to support the ELFv2 ABI on big-endian or the ELFv1 ABI on
little-endian systems (and GCC does support that), and there are some
special use cases for that (e.g. certain Linux kernel versions could
only be built using ELFv1 on LE).

This patch implements the LLVM side of supporting this.  As precedent
on other platforms suggests, ABI options are passed to the back-end as
features.  Thus, this patch implements two features "elfv1" and "elfv2"
that select the desired ABI if present.  (If not, the LLVM uses the
same default rules as now.)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214072 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-28 13:09:28 +00:00
..
Analysis Add @llvm.assume, lowering, and some basic properties 2014-07-25 21:13:35 +00:00
AsmParser AsmParser: remove deprecated LLIR support 2014-07-23 18:09:31 +00:00
Bitcode Bitcode: Don't optimize constants when preserving use-list order 2014-07-25 16:13:16 +00:00
CodeGen Add alignment value to allowsUnalignedMemoryAccess 2014-07-27 17:46:40 +00:00
DebugInfo Revert "Introduce a string_ostream string builder facilty" 2014-06-26 22:52:05 +00:00
ExecutionEngine Remove dead code. 2014-07-24 16:02:28 +00:00
IR Fix MSVC2012 build error in UseListOrder.cpp 2014-07-25 16:22:13 +00:00
IRReader Update the MemoryBuffer API to use ErrorOr. 2014-07-06 17:43:13 +00:00
LineEditor [CMake] Use LINK_LIBS instead of target_link_libraries(). 2014-02-26 06:41:29 +00:00
Linker Include <tuple> to make buildbots happy 2014-06-27 18:38:12 +00:00
LTO AArch64: remove arm64 triple enumerator. 2014-07-23 12:32:47 +00:00
MC Reapply "DebugInfo: Don't put fission type units in comdat sections." 2014-07-25 17:11:58 +00:00
Object AArch64: remove arm64 triple enumerator. 2014-07-23 12:32:47 +00:00
Option Generic: add range-adapter for option parsing. 2014-07-09 13:03:37 +00:00
ProfileData coverage: remove empty mapping regions 2014-07-25 22:22:24 +00:00
Support Remove dead code. 2014-07-25 19:06:39 +00:00
TableGen [TableGen] Allow shift operators to take bits<n> 2014-07-17 17:04:27 +00:00
Target [PowerPC] Support ELFv1/ELFv2 ABI selection via features 2014-07-28 13:09:28 +00:00
Transforms Canonicalization for @llvm.assume 2014-07-25 21:45:17 +00:00
CMakeLists.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
LLVMBuild.txt ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00
Makefile ProfileData: Introduce the InstrProfReader interface and a text reader 2014-03-21 17:24:48 +00:00