Rui Ueyama
87bc41bcee
ELF2: Use shorter names before this file grows larger.
...
llvm-svn: 249441
2015-10-06 18:54:43 +00:00
Rui Ueyama
33bb1a23b3
ELF2: or{16,32,64}le should really do bitwise-OR.
...
llvm-svn: 249436
2015-10-06 18:11:18 +00:00
Rui Ueyama
190beb3144
ELF2: Define or{16,32,64}le that are analogous to add32le.
...
llvm-svn: 249435
2015-10-06 18:08:03 +00:00
Davide Italiano
b4606e183e
[ELF2/AArch64] Read the right amount of bytes.
...
This was clearly wrong (thanks Rui for spotting), and I honestly would
like to get this tested so such mistakes won't repeat. Unfortunately, I
wasn't (easily) able to craft a test that exposes the bad behavior.
Ideally, we would like to get tests of this kind for all relocations, but
at the time of writing, this is not true. So, for now just fix this bug
and try to re-evaluate a way to test this in the future.
llvm-svn: 249359
2015-10-05 22:43:42 +00:00
Rafael Espindola
ae24400424
Create R_X86_64_RELATIVE when needed.
...
The dynamic relocation code needs refactoring, but it is probably better
to do it with this test passing.
llvm-svn: 249340
2015-10-05 19:30:12 +00:00
Davide Italiano
df88f968e3
[ELF2/AArch64] Add support for AARCH64_ABS{16,32,64} relocations.
...
I saw these in the wild while trying to link shared libraries.
llvm-svn: 249254
2015-10-04 00:59:16 +00:00
Davide Italiano
0b6974bfe0
[ELF/AArch64] Support R_AARCH64_ADR_PREL_PG_H121 relocation.
...
llvm-svn: 249246
2015-10-03 19:56:07 +00:00
Davide Italiano
d9b5be4c83
[ELF/AArch64] Fix a couple of typos. My bad, sorry.
...
llvm-svn: 249201
2015-10-02 22:17:09 +00:00
Davide Italiano
318ca22914
[ELF2/AArch64] Add comment and change name to match the one of the ABI.
...
Fix style while I'm here.
llvm-svn: 249198
2015-10-02 22:13:51 +00:00
Davide Italiano
1f31a2c11c
[ELF2/AArch64] Add support for R_AARCH64_ADR_PREL_PG_H121
...
llvm-svn: 249195
2015-10-02 22:00:42 +00:00
Rafael Espindola
3c412e14cc
Expand a comment a bit.
...
llvm-svn: 248894
2015-09-30 12:30:58 +00:00
Rui Ueyama
5ba3ac4f10
Simplify switch statements. NFC.
...
llvm-svn: 248871
2015-09-30 01:40:08 +00:00
Rui Ueyama
e3fbc89c44
ELF2: Do not use host pointer size to calculate x86_64 relocation addresses.
...
Previous code had a potential portability issue because intptr_t is
not guaranteed to be 64 bit.
llvm-svn: 248856
2015-09-29 23:25:21 +00:00
Rafael Espindola
9a0db7cbef
Fix typo.
...
llvm-svn: 248855
2015-09-29 23:23:53 +00:00
Rafael Espindola
3ef3a4c9ff
Start adding support for static programs using dynamic libraries.
...
This is just enough for a hello world using a dynamic glibc.
llvm-svn: 248854
2015-09-29 23:22:16 +00:00
Rui Ueyama
1500a90093
ELF2: Do not create ArrayRefs and use const arrays instead. NFC.
...
llvm-svn: 248844
2015-09-29 23:00:47 +00:00
Rafael Espindola
8acb95c7ab
Add support for R_386_GOT32.
...
llvm-svn: 248799
2015-09-29 14:42:37 +00:00
Rafael Espindola
6d7fcdb518
Add R_386_GOTPC support.
...
llvm-svn: 248793
2015-09-29 13:36:32 +00:00
Simon Atanasyan
49829a1bfe
[ELF2] Add initial MIPS support
...
Besides a trivial MIPS support the patch introduces new TargetInfo class
member getDefaultEntry() to override default name of the entry symbol.
MIPS uses __start for that.
Differential Revision: http://reviews.llvm.org/D13227
llvm-svn: 248779
2015-09-29 05:34:03 +00:00
Davide Italiano
1d750a6fc3
[ELF2/AArch64] Support for R_AARCH64_ADR_PREL_LO21 relocation.
...
llvm-svn: 248679
2015-09-27 08:45:38 +00:00
Davide Italiano
cde9336717
[ELF2] Add initial AArch64 support.
...
Differential Revision: http://reviews.llvm.org/D13167
llvm-svn: 248641
2015-09-26 00:32:04 +00:00
Rafael Espindola
0872ea3954
Simplify with some ideas from COFF:
...
* add using namespace llvm::support::endian.
* create a add32le static helper.
Thanks to Rui for the suggestion.
llvm-svn: 248491
2015-09-24 14:16:02 +00:00
Rafael Espindola
cdfecffd80
Add support for relocating R_X86_64_GOTPCREL.
...
llvm-svn: 248425
2015-09-23 20:08:25 +00:00
Rafael Espindola
7f07442bb6
Move the last remaining hard coded relocations to Target.
...
Unfortunately the i386 and x86_64 relocation have the same numerical value
and it is a probably a bit much to add got support for another architecture
just to test this.
llvm-svn: 248326
2015-09-22 21:35:51 +00:00
Rafael Espindola
1d6063e804
Stub out ARM and PPC targets so that we can use a switch to create them.
...
llvm-svn: 248324
2015-09-22 21:24:52 +00:00
Rafael Espindola
3efa4e982e
Add a token ppc64 reloc just to have a test showing that we handle BE.
...
llvm-svn: 248321
2015-09-22 21:12:55 +00:00
Rafael Espindola
c40108858d
Move relocation processing to Target.
...
I will add a couple of ppc64 relocs in the next patches.
llvm-svn: 248319
2015-09-22 20:54:08 +00:00
Rafael Espindola
8c21fad1e8
Fix a merge problem.
...
r248289 got lots when I moved code to Target.cpp. Sorry about that.
llvm-svn: 248317
2015-09-22 20:06:19 +00:00
Rafael Espindola
01205f79a4
Start adding target abstractions.
...
This is just enough to get PLT working on 32 bit x86.
The idea behind using a virtual interface is that it should be easy to
convert any of the functions to template parameters if any turns out to be
performance critical.
llvm-svn: 248308
2015-09-22 18:19:46 +00:00