Simon Atanasyan
134a8a6311
[Mips] Reduce the number of 'const' casts.
...
llvm-svn: 204355
2014-03-20 16:26:25 +00:00
Simon Atanasyan
df0d62a7cb
[Mips] Join two for loops over defined atoms into the single one.
...
llvm-svn: 204354
2014-03-20 16:26:15 +00:00
Simon Atanasyan
7b571f4ee0
[Mips] Remove the dead code.
...
llvm-svn: 204353
2014-03-20 16:26:07 +00:00
Simon Atanasyan
c452d4f89f
[Mips] Remove unused member function argument.
...
llvm-svn: 204352
2014-03-20 16:25:58 +00:00
Simon Atanasyan
6210b2ef6b
[Mips] Remove unused function.
...
llvm-svn: 204248
2014-03-19 16:05:32 +00:00
Simon Atanasyan
e29132d427
[Mips] Fix handling of R_MIPS_GOT16 relocation and building local part
...
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
2014-03-19 15:46:25 +00:00
Simon Atanasyan
b1ba018ed2
[Mips] Handle R_MIPS_GOT16 relocation for external and local symbols in
...
a uniform way.
llvm-svn: 204246
2014-03-19 15:46:15 +00:00
Simon Atanasyan
49fa6a41f4
[Mips] Factor out the code creates GOT entry atoms into the two
...
functions. The first one is for local GOT entries. The second one is for
global GOT entries.
llvm-svn: 204245
2014-03-19 15:46:07 +00:00
Simon Atanasyan
a7b553efd1
[Mips] Add 'const' qualifier to the function.
...
llvm-svn: 204244
2014-03-19 15:46:00 +00:00
Simon Atanasyan
c1b62ea310
[Mips] Move AHL addends calculation to the RelocationPass class.
...
llvm-svn: 204243
2014-03-19 15:45:55 +00:00
Simon Atanasyan
d8259fbcc3
[Mips] Move RelocationPass class member function definitions out of the
...
class.
llvm-svn: 204242
2014-03-19 15:45:49 +00:00
Simon Atanasyan
fe3e0a2abf
[Mips] Fix addendum reading for R_MIPS_26 relocation.
...
llvm-svn: 203412
2014-03-09 13:20:01 +00:00
Simon Atanasyan
c146325b26
[Mips] Fix addendum reading for R_MIPS_32 relocation.
...
llvm-svn: 203411
2014-03-09 13:19:54 +00:00
Simon Atanasyan
0f96aca940
[Mips] Fix addendum reading for R_MIPS_HI16 / R_MIPS_LO16 relocations.
...
llvm-svn: 203410
2014-03-09 13:19:46 +00:00
Simon Atanasyan
cfffe940a8
[Mips] Create ELF object reader for MIPS target.
...
llvm-svn: 203409
2014-03-09 13:19:36 +00:00
Simon Atanasyan
6928b38c99
[Mips] Remove redundant 'mips' prefix from names of MipsELFWriter class
...
fields.
llvm-svn: 203406
2014-03-09 13:05:33 +00:00
Simon Atanasyan
8d8e340c61
[Mips] Reduce the code indentation.
...
llvm-svn: 203405
2014-03-09 13:05:26 +00:00
Simon Atanasyan
82381f97b9
[Mips] Change unused return type from 'bool' to 'void'.
...
llvm-svn: 203404
2014-03-09 13:05:20 +00:00
Simon Atanasyan
0784422520
[Mips] Remove unnecessary LLVM_ATTRIBUTE_UNUSED attribute.
...
llvm-svn: 203403
2014-03-09 13:05:15 +00:00
Simon Atanasyan
6af34b9661
[Mips] Do not inherit MipsDynamicLibraryWriter and MipsExecutableWriter
...
from MipsELFWriter class. MipsELFWriter is just a helper.
llvm-svn: 203402
2014-03-09 13:05:09 +00:00
Simon Atanasyan
16c425e985
[Mips] Mark class by 'final' keyword.
...
llvm-svn: 203401
2014-03-09 13:05:03 +00:00
Simon Atanasyan
8801c45110
[Mips] Remove redundant 'mips' prefix from names of MipsTargetHandler
...
and MipsDynamicSymbolTable classes fields.
llvm-svn: 203400
2014-03-09 13:04:56 +00:00
Simon Atanasyan
4881a93b73
[Mips] Remove redundant call to the unique_ptr::get() method followed
...
by the returned pointer dereferencing.
llvm-svn: 203399
2014-03-09 13:04:50 +00:00
Simon Atanasyan
f08deab395
[Mips] Remove unused class field.
...
llvm-svn: 203398
2014-03-09 13:04:45 +00:00
Simon Atanasyan
e9ba661696
[Mips] Removed extra space. Thanks to dexonsmith's eagle eye.
...
llvm-svn: 203201
2014-03-07 04:50:53 +00:00
Simon Atanasyan
54f6f7bd77
[Mips] Replace "virtual" by "override" in member function declarations
...
where it is appropriate.
llvm-svn: 203102
2014-03-06 10:29:45 +00:00
Chandler Carruth
6eface7c9d
[C++11] Switch from LLVM_FINAL to just "final" now that all of LLVM is
...
requiring MSVC 2012 or newer.
llvm-svn: 202626
2014-03-02 09:35:33 +00:00
Simon Atanasyan
930ea1892f
[Mips] Remove non-ASCII symbol from the comment.
...
llvm-svn: 202290
2014-02-26 19:23:52 +00:00
Simon Atanasyan
46ff3ce2bd
[Mips] Split reloc26 function into two parts - for processing local and
...
external relocations.
llvm-svn: 202289
2014-02-26 19:17:20 +00:00
Simon Atanasyan
2043ee167c
[Mips] Use a correct number of bits when apply result of calculated relocation.
...
llvm-svn: 202288
2014-02-26 19:17:14 +00:00
Simon Atanasyan
a444eae5ce
[Mips] Exit from the class method as soon as possible.
...
llvm-svn: 202287
2014-02-26 19:17:07 +00:00
Simon Atanasyan
06f8ea4c07
[Mips] Simplify the code. Replace redundant 'switch' operator by the single 'if' one.
...
llvm-svn: 201131
2014-02-11 06:36:16 +00:00
Simon Atanasyan
bf987c2dae
[Mips] Handle R_MIPS_COPY relocation.
...
llvm-svn: 201129
2014-02-11 05:34:02 +00:00
Simon Atanasyan
b828ebb5dd
[Mips] In case of executable file linking MIPS ABI requires to add even
...
undefined symbols to '.dynsym' if these symbols have corresponding entries
in a global part of GOT.
llvm-svn: 200716
2014-02-03 20:10:40 +00:00
Simon Atanasyan
0912fe06dc
[Mips] Unify #include guard names.
...
llvm-svn: 200715
2014-02-03 20:10:30 +00:00
Simon Atanasyan
e6f6f06c91
[ELF] Customize dynamic table tag used for .got.plt section referencing.
...
The patch reviewed by Shankar Easwaran and Rui Ueyama.
llvm-svn: 200630
2014-02-02 12:19:29 +00:00
Simon Atanasyan
7aa9061ead
[Mips] Declare MipsDynamicTable class in a separate header file.
...
llvm-svn: 200328
2014-01-28 18:52:41 +00:00
Shankar Easwaran
b11964707c
[ELF] Make changes to all the targets supported currently
...
X86_64,X86,PPC,Hexagon,Mips
No change in functionality.
llvm-svn: 200177
2014-01-27 01:21:02 +00:00
Shankar Easwaran
9691b01905
[ELF] Rename File.h to ELFFile.h to avoid confusion.
...
No change in functionality.
llvm-svn: 200166
2014-01-26 23:49:07 +00:00
Simon Atanasyan
d8cadd6f17
[ELF] Customize a relocation table output format (rel / rela).
...
Add new virtual virtual function `isRelaOutputFormat` to the
`ELFLinkingContext` class. Call this function everywhere we need to
select a relocation table format.
Patch reviewed by Shankar Easwaran and Rui Ueyama.
llvm-svn: 199973
2014-01-24 05:21:21 +00:00
Simon Atanasyan
2f1d6366e7
[Mips] Emit ELF header for MIPS target. ELF flags set is mostly hardcoded.
...
Later we need to improve that solution and build a correct set of flags
by merging ELF flags from all input objects.
llvm-svn: 199555
2014-01-18 16:59:11 +00:00
Simon Atanasyan
0e57a77072
[Mips] Simplify calculations of relocations - replace scatterBits calls
...
by bitwise AND operator and remove redundant local variables.
llvm-svn: 199554
2014-01-18 16:59:00 +00:00
Simon Atanasyan
9ab3b8db84
[Mips] Allocate local GOT entry for a global symbol defined in an
...
executable file.
llvm-svn: 199517
2014-01-17 21:18:45 +00:00
Simon Atanasyan
362bdc125e
[Mips] Implement .plt and .got.plt section creation.
...
llvm-svn: 199516
2014-01-17 21:18:37 +00:00
Simon Atanasyan
66338224be
[Mips] Handle R_MIPS_26 relocation. Maintaining of .plt and .got.plt
...
sections will be implemented later.
llvm-svn: 199515
2014-01-17 21:18:26 +00:00
Simon Atanasyan
80b86a43d5
[Mips] Provide default name of MIPS-specific interpreter.
...
llvm-svn: 199514
2014-01-17 21:18:14 +00:00
Simon Atanasyan
13c5ce53dc
[Mips] Do not forget to initialize a class field.
...
llvm-svn: 199241
2014-01-14 18:20:07 +00:00
Simon Atanasyan
e46e2dfe01
[Mips] Calculate gp value only once.
...
llvm-svn: 199240
2014-01-14 18:20:00 +00:00
Simon Atanasyan
db2e1f35d8
[Mips] Create and initialize _gp symbol.
...
llvm-svn: 199239
2014-01-14 18:19:52 +00:00
Simon Atanasyan
6cac582de5
[Mips] Do not store a pointer to the AtomLayout related to the
...
_GLOBAL_OFFSET_TABLE_ symbol. We do not use this ponter anywhere after
assigning of virtual address.
llvm-svn: 199237
2014-01-14 18:19:35 +00:00