llvm-project/lld
Simon Atanasyan 57830b60dc [ELF][MIPS] Implement R_MIPS_GPREL16/R_MIPS_GPREL32 relocations
The R_MIPS_GPREL16 / R_MIPS_GPREL32 relocations use the following
expressions for calculations:
```
local symbol:  S + A + GP0 - GP
global symbol: S + A - GP

GP  - Represents the final gp value, i.e. _gp symbol
GP0 - Represents the gp value used to create the relocatable object
```
The GP0 value is taken from the .reginfo data section defined by an object
file. To implement that I keep a reference to `MipsReginfoInputSection`
in the `ObjectFile` class. This reference is used by the
`ObjectFile::getMipsGp0` method to return the GP0 value.

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

llvm-svn: 256416
2015-12-25 13:02:13 +00:00
..
COFF COFF: Create an empty but valid PDF file. 2015-12-08 18:39:55 +00:00
ELF [ELF][MIPS] Implement R_MIPS_GPREL16/R_MIPS_GPREL32 relocations 2015-12-25 13:02:13 +00:00
cmake/modules Add VTune as an optional external dependency and add task tracking. 2013-04-06 00:56:40 +00:00
docs Update documents. 2015-11-20 22:47:42 +00:00
include/lld Move parsing of LLVM options to parse() method. 2015-12-16 20:53:27 +00:00
lib Fix negDelta32 relocatable fixups for arm64 in mach-o. 2015-12-16 22:50:16 +00:00
test [ELF][MIPS] Implement R_MIPS_GPREL16/R_MIPS_GPREL32 relocations 2015-12-25 13:02:13 +00:00
tools Rename ld.lld2 to ld.lld since it is the default. 2015-11-18 06:11:01 +00:00
unittests Fix DarwinLdDriverTest.cpp to pass real llvm options. 2015-12-16 21:24:46 +00:00
.arcconfig Update Phabricator server. 2014-04-07 04:52:24 +00:00
.clang-format Remove redundant "Standard: Cpp11" tag. The LLVM style has used the 2014-07-04 12:08:03 +00:00
.gitignore Update .gitignore to ignore hidden MacOSX Finder droppings 2014-07-16 21:01:17 +00:00
CMakeLists.txt [CMake] Don't include the lld test directory if LLVM_INCLUDE_TESTS is Off 2015-10-01 18:17:47 +00:00
CODE_OWNERS.TXT Add initial CODE_OWNERS.TXT file 2015-07-25 00:44:37 +00:00
LICENSE.TXT Update copyright year to 2015. 2015-03-12 20:14:35 +00:00
README.md

README.md

LLVM Linker (lld)

This directory and its subdirectories contain source code for the LLVM Linker, a modular cross platform linker which is built as part of the LLVM compiler infrastructure project.

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