Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | [Mips] Re-order include headers. | Simon Atanasyan | 2014-04-29 | 1 | -3/+1 | |
| | | | | llvm-svn: 207495 | |||||
* | [Mips] Implement emitting of R_MIPS_REL32 relocations: | Simon Atanasyan | 2014-04-29 | 7 | -25/+269 | |
| | | | | | | | | | | | | | 1. Re-implement PLT entries and dynamic relocations emitting to keep PLT and relocations table in a consistent state. 2. Initialize st_value and st_other fields for dynamic symbols table entry if this entry corresponds to an external function which address is taken in a non-PIC executable. In that case the st_value field holds an address of the function's PLT entry. Also set STO_MIPS_PLT bit in the st_other field. llvm-svn: 207494 | |||||
* | [Mips] 80 column. | Simon Atanasyan | 2014-04-29 | 1 | -2/+6 | |
| | | | | llvm-svn: 207493 | |||||
* | [Mips] Convert MipsDynamicSymbolTable to the class template. | Simon Atanasyan | 2014-04-28 | 3 | -10/+14 | |
| | | | | llvm-svn: 207435 | |||||
* | [Mips] Add the 'const' qualifier to the couple RelocationPass class | Simon Atanasyan | 2014-04-28 | 1 | -4/+4 | |
| | | | | | | member functions. llvm-svn: 207434 | |||||
* | [Mips] Emit PLT entries for more static relocations. | Simon Atanasyan | 2014-04-16 | 1 | -6/+18 | |
| | | | | llvm-svn: 206358 | |||||
* | [ELF] Regroup code creates ELF relocations references ELFReference into | Simon Atanasyan | 2014-04-12 | 2 | -71/+50 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a couple of new virtual functions. Follow-up to the rL203408. Two virtual functions `createRelocationReference()` responsible for creation of `ELFReference` have been replaced by a couple of new virtual functions `createRelocationReferences()` (plural). Each former function creates a //single// ELFReference for a specified `Elf_Rela` or `Elf_Rel` relocation records. The new functions responsible for creation of //all// relocation references for provided symbol. For all targets except MIPS there are no functional changes. MIPS ABI has a notion of //paired// relocations. An effective addend of such relocations are calculated using addends of both pair's members. Each `R_MIPS_HI16` and `R_MIPS_GOT16` (for local symbols) relocations must have an associated `R_MIPS_LO16` entry immediately following it in the list of relocations. Immediately does not mean "next record" in relocations section but "next record referenced the same symbol". Moreover a single `R_MIPS_LO16` relocation can be paired with multiple preceding `R_MIPS_HI16/R_MIPS_GOT16` relocations. The paired relocation can have offsets belong to the different symbols. That is why we need to have access to list of all relocations during construction of `ELFReference` for MIPS target. The patch reviewed by Shankar Easwaran. llvm-svn: 206102 | |||||
* | [Mips] Factor out MIPS relocation addend reading to the separate | Simon Atanasyan | 2014-04-11 | 1 | -8/+12 | |
| | | | | | | | | function. No functional changes. llvm-svn: 206023 | |||||
* | [Mips] R_MIPS_PC32 relocation support. | Simon Atanasyan | 2014-04-11 | 4 | -0/+12 | |
| | | | | llvm-svn: 206018 | |||||
* | [ELF] Add "override" and remove "virtual". | Rui Ueyama | 2014-03-28 | 1 | -2/+2 | |
| | | | | llvm-svn: 205056 | |||||
* | Make anonymous namespace as small as possible. | Rui Ueyama | 2014-03-27 | 2 | -27/+22 | |
| | | | | llvm-svn: 204982 | |||||
* | [Mips] Fix formatting. | Simon Atanasyan | 2014-03-24 | 1 | -1/+1 | |
| | | | | llvm-svn: 204607 | |||||
* | [Mips] Sort R_MIPS_LO16 / R_MIPS_HI16 / R_MIPS_GOT16 before finding | Simon Atanasyan | 2014-03-24 | 1 | -9/+29 | |
| | | | | | | pairs and calculate AHL addend. llvm-svn: 204606 | |||||
* | [Mips] Emit LA25 MIPS stubs to call pic code from non-pic routines. | Simon Atanasyan | 2014-03-21 | 2 | -22/+137 | |
| | | | | llvm-svn: 204503 | |||||
* | [Mips] Fix source code formatting. No functional changes. | Simon Atanasyan | 2014-03-21 | 1 | -11/+11 | |
| | | | | llvm-svn: 204472 | |||||
* | [Mips] Reduce the number of 'const' casts. | Simon Atanasyan | 2014-03-20 | 1 | -14/+14 | |
| | | | | llvm-svn: 204355 | |||||
* | [Mips] Join two for loops over defined atoms into the single one. | Simon Atanasyan | 2014-03-20 | 1 | -4/+3 | |
| | | | | llvm-svn: 204354 | |||||
* | [Mips] Remove the dead code. | Simon Atanasyan | 2014-03-20 | 1 | -4/+0 | |
| | | | | llvm-svn: 204353 | |||||
* | [Mips] Remove unused member function argument. | Simon Atanasyan | 2014-03-20 | 1 | -4/+3 | |
| | | | | llvm-svn: 204352 | |||||
* | [Mips] Remove unused function. | Simon Atanasyan | 2014-03-19 | 1 | -7/+0 | |
| | | | | llvm-svn: 204248 | |||||
* | [Mips] Fix handling of R_MIPS_GOT16 relocation and building local part | Simon Atanasyan | 2014-03-19 | 5 | -9/+29 | |
| | | | | | | | | | of GOT. * Read addend for R_MIPS_GOT16 relocation. * Put only high 16 bits of symbol + addend into GOT entries for locally visible symbols. llvm-svn: 204247 | |||||
* | [Mips] Handle R_MIPS_GOT16 relocation for external and local symbols in | Simon Atanasyan | 2014-03-19 | 4 | -9/+0 | |
| | | | | | | a uniform way. llvm-svn: 204246 | |||||
* | [Mips] Factor out the code creates GOT entry atoms into the two | Simon Atanasyan | 2014-03-19 | 1 | -16/+36 | |
| | | | | | | | functions. The first one is for local GOT entries. The second one is for global GOT entries. llvm-svn: 204245 | |||||
* | [Mips] Add 'const' qualifier to the function. | Simon Atanasyan | 2014-03-19 | 1 | -2/+2 | |
| | | | | llvm-svn: 204244 | |||||
* | [Mips] Move AHL addends calculation to the RelocationPass class. | Simon Atanasyan | 2014-03-19 | 3 | -67/+46 | |
| | | | | llvm-svn: 204243 | |||||
* | [Mips] Move RelocationPass class member function definitions out of the | Simon Atanasyan | 2014-03-19 | 1 | -197/+215 | |
| | | | | | | class. llvm-svn: 204242 | |||||
* | [Mips] Fix addendum reading for R_MIPS_26 relocation. | Simon Atanasyan | 2014-03-09 | 1 | -1/+1 | |
| | | | | llvm-svn: 203412 | |||||
* | [Mips] Fix addendum reading for R_MIPS_32 relocation. | Simon Atanasyan | 2014-03-09 | 1 | -3/+13 | |
| | | | | llvm-svn: 203411 | |||||
* | [Mips] Fix addendum reading for R_MIPS_HI16 / R_MIPS_LO16 relocations. | Simon Atanasyan | 2014-03-09 | 1 | -0/+17 | |
| | | | | llvm-svn: 203410 | |||||
* | [Mips] Create ELF object reader for MIPS target. | Simon Atanasyan | 2014-03-09 | 3 | -0/+119 | |
| | | | | llvm-svn: 203409 | |||||
* | [Mips] Remove redundant 'mips' prefix from names of MipsELFWriter class | Simon Atanasyan | 2014-03-09 | 1 | -15/+14 | |
| | | | | | | fields. llvm-svn: 203406 | |||||
* | [Mips] Reduce the code indentation. | Simon Atanasyan | 2014-03-09 | 1 | -15/+16 | |
| | | | | llvm-svn: 203405 | |||||
* | [Mips] Change unused return type from 'bool' to 'void'. | Simon Atanasyan | 2014-03-09 | 1 | -2/+1 | |
| | | | | llvm-svn: 203404 | |||||
* | [Mips] Remove unnecessary LLVM_ATTRIBUTE_UNUSED attribute. | Simon Atanasyan | 2014-03-09 | 1 | -1/+1 | |
| | | | | llvm-svn: 203403 | |||||
* | [Mips] Do not inherit MipsDynamicLibraryWriter and MipsExecutableWriter | Simon Atanasyan | 2014-03-09 | 3 | -12/+11 | |
| | | | | | | from MipsELFWriter class. MipsELFWriter is just a helper. llvm-svn: 203402 | |||||
* | [Mips] Mark class by 'final' keyword. | Simon Atanasyan | 2014-03-09 | 1 | -3/+3 | |
| | | | | llvm-svn: 203401 | |||||
* | [Mips] Remove redundant 'mips' prefix from names of MipsTargetHandler | Simon Atanasyan | 2014-03-09 | 2 | -19/+18 | |
| | | | | | | and MipsDynamicSymbolTable classes fields. llvm-svn: 203400 | |||||
* | [Mips] Remove redundant call to the unique_ptr::get() method followed | Simon Atanasyan | 2014-03-09 | 2 | -5/+5 | |
| | | | | | | by the returned pointer dereferencing. llvm-svn: 203399 | |||||
* | [Mips] Remove unused class field. | Simon Atanasyan | 2014-03-09 | 2 | -5/+3 | |
| | | | | llvm-svn: 203398 | |||||
* | [Mips] Removed extra space. Thanks to dexonsmith's eagle eye. | Simon Atanasyan | 2014-03-07 | 1 | -1/+1 | |
| | | | | llvm-svn: 203201 | |||||
* | [Mips] Replace "virtual" by "override" in member function declarations | Simon Atanasyan | 2014-03-06 | 8 | -38/+38 | |
| | | | | | | where it is appropriate. llvm-svn: 203102 | |||||
* | [C++11] Switch from LLVM_FINAL to just "final" now that all of LLVM is | Chandler Carruth | 2014-03-02 | 3 | -4/+4 | |
| | | | | | | requiring MSVC 2012 or newer. llvm-svn: 202626 | |||||
* | [Mips] Remove non-ASCII symbol from the comment. | Simon Atanasyan | 2014-02-26 | 1 | -1/+1 | |
| | | | | llvm-svn: 202290 | |||||
* | [Mips] Split reloc26 function into two parts - for processing local and | Simon Atanasyan | 2014-02-26 | 1 | -7/+11 | |
| | | | | | | external relocations. llvm-svn: 202289 | |||||
* | [Mips] Use a correct number of bits when apply result of calculated relocation. | Simon Atanasyan | 2014-02-26 | 1 | -11/+12 | |
| | | | | llvm-svn: 202288 | |||||
* | [Mips] Exit from the class method as soon as possible. | Simon Atanasyan | 2014-02-26 | 1 | -3/+4 | |
| | | | | llvm-svn: 202287 | |||||
* | [Mips] Simplify the code. Replace redundant 'switch' operator by the single ↵ | Simon Atanasyan | 2014-02-11 | 1 | -7/+1 | |
| | | | | | | 'if' one. llvm-svn: 201131 | |||||
* | [Mips] Handle R_MIPS_COPY relocation. | Simon Atanasyan | 2014-02-11 | 4 | -0/+57 | |
| | | | | llvm-svn: 201129 | |||||
* | [Mips] In case of executable file linking MIPS ABI requires to add even | Simon Atanasyan | 2014-02-03 | 3 | -0/+23 | |
| | | | | | | | undefined symbols to '.dynsym' if these symbols have corresponding entries in a global part of GOT. llvm-svn: 200716 | |||||
* | [Mips] Unify #include guard names. | Simon Atanasyan | 2014-02-03 | 9 | -22/+23 | |
| | | | | llvm-svn: 200715 |