llvm-project/lld/ELF
Peter Smith de01b98a26 Add Thunk support framework for ARM and Mips
Generalise the Mips LA25 Thunk code and implement ARM and Thumb
    interworking Thunks.
    
    - Introduce a new module Thunks.cpp to store the Target Specific Thunk
      implementations.
    - DefinedRegular and Shared have a ThunkData field to record Thunk.
    - A Target can have more than one type of Thunk.
    - Support PC-relative calls to Thunks.
    - Support Thunks to PLT entries.
    - Existing Mips LA25 Thunk code integrated.
    - Support for ARMv7A interworking Thunks.
    
    Limitations:
    - Only one Thunk per SymbolBody, this is sufficient for all currently
      implemented Thunks.
    - ARM thunks assume presence of V6T2 MOVT and MOVW instructions.

    Differential revision: http://reviews.llvm.org/D21891

llvm-svn: 274836
2016-07-08 11:13:40 +00:00
..
CMakeLists.txt Add Thunk support framework for ARM and Mips 2016-07-08 11:13:40 +00:00
Config.h [ELF] - Do not error out when version declaration not found when building executable. 2016-07-08 06:47:28 +00:00
Driver.cpp [ELF] - Do not error out when version declaration not found when building executable. 2016-07-08 06:47:28 +00:00
Driver.h Create version.txt in a reproduce archive file. 2016-06-06 15:34:37 +00:00
DriverUtils.cpp Do not call warning() from ELFOptTable::parse(). 2016-07-07 01:58:04 +00:00
EhFrame.cpp ELF: Handle empty CIE augmentation string 2016-05-25 14:45:28 +00:00
EhFrame.h Create a new file EhFrame.cpp and move code to read .eh_frame there. 2016-05-24 02:55:45 +00:00
Error.cpp Use "using namespace llvm" like the rest of ELF lld. 2016-07-07 14:06:38 +00:00
Error.h Matching change for lld for the llvm change of Archive::create() from ErrorOr<...> to Expected<...> in r274160. 2016-06-29 20:36:11 +00:00
ICF.cpp Do not pass Symtab to markLive/doICF since Symtab is globally accessible. 2016-05-02 19:30:42 +00:00
ICF.h Do not pass Symtab to markLive/doICF since Symtab is globally accessible. 2016-05-02 19:30:42 +00:00
InputFiles.cpp Fix formatting. 2016-07-07 02:46:30 +00:00
InputFiles.h Refactor ELF type inference functions. 2016-06-29 01:30:50 +00:00
InputSection.cpp Add Thunk support framework for ARM and Mips 2016-07-08 11:13:40 +00:00
InputSection.h Add Thunk support framework for ARM and Mips 2016-07-08 11:13:40 +00:00
LTO.cpp [LTO] Update after API change in LLVM. NFC. 2016-06-22 19:51:05 +00:00
LTO.h [LTO] Include ASM undefs in llvm.compiler_used. 2016-06-22 18:09:23 +00:00
LinkerScript.cpp Fix formating. NFC. 2016-07-07 14:28:47 +00:00
LinkerScript.h Create Strings.cpp and move string manipulation functions to that file. 2016-06-29 08:01:32 +00:00
MarkLive.cpp Remove duplicate declaration. 2016-07-02 08:50:05 +00:00
Options.td [ELF] Ignore --demangle. We already demangle symbols by default. 2016-07-07 23:32:36 +00:00
OutputSections.cpp [gardening] Switch back to auto. NFCI. 2016-07-06 17:41:55 +00:00
OutputSections.h Remove duplicate declaration. 2016-07-02 08:50:05 +00:00
README.md Update the documents of the new LLD. 2016-03-12 06:06:40 +00:00
Relocations.cpp Add Thunk support framework for ARM and Mips 2016-07-08 11:13:40 +00:00
Relocations.h Add Thunk support framework for ARM and Mips 2016-07-08 11:13:40 +00:00
ScriptParser.cpp Create Strings.cpp and move string manipulation functions to that file. 2016-06-29 08:01:32 +00:00
ScriptParser.h Create Strings.cpp and move string manipulation functions to that file. 2016-06-29 08:01:32 +00:00
Strings.cpp Move demangle() from Symbols.cpp to Strings.cpp. 2016-07-07 23:04:15 +00:00
Strings.h Move demangle() from Symbols.cpp to Strings.cpp. 2016-07-07 23:04:15 +00:00
SymbolListFile.cpp [ELF] - Depricate version references. 2016-07-01 11:45:10 +00:00
SymbolListFile.h [ELF] - Forgot to address these two minors before commit r273152. NFC. 2016-06-20 13:22:54 +00:00
SymbolTable.cpp [ELF] - Do not error out when version declaration not found when building executable. 2016-07-08 06:47:28 +00:00
SymbolTable.h [ELF] Support for wildcard in version scripts. 2016-06-29 02:46:51 +00:00
Symbols.cpp Add Thunk support framework for ARM and Mips 2016-07-08 11:13:40 +00:00
Symbols.h Add Thunk support framework for ARM and Mips 2016-07-08 11:13:40 +00:00
Target.cpp Add Thunk support framework for ARM and Mips 2016-07-08 11:13:40 +00:00
Target.h Add Thunk support framework for ARM and Mips 2016-07-08 11:13:40 +00:00
Thunks.cpp Add Thunk support framework for ARM and Mips 2016-07-08 11:13:40 +00:00
Thunks.h Add Thunk support framework for ARM and Mips 2016-07-08 11:13:40 +00:00
Writer.cpp Remove trailing whitespaces. 2016-07-01 10:42:25 +00:00
Writer.h Do not pass Symtab to markLive/doICF since Symtab is globally accessible. 2016-05-02 19:30:42 +00:00

README.md

See docs/NewLLD.rst