Benjamin Kramer
fe9eb0e6e8
Remove a bunch of unused variable assignments.
...
Found by the clang static analyzer.
llvm-svn: 148541
2012-01-20 14:42:32 +00:00
Rafael Espindola
fc4563fd8c
Kill the monstrosity that was ELFObjectWriter.h.
...
llvm-svn: 147136
2011-12-22 03:38:00 +00:00
Rafael Espindola
f6ea76db23
Misc cleanups.
...
llvm-svn: 147135
2011-12-22 03:24:43 +00:00
Rafael Espindola
3ed0f04e50
Move the Mips only bits of the ELF writer to lib/Target/Mips.
...
llvm-svn: 147133
2011-12-22 03:03:17 +00:00
Rafael Espindola
82d61c8b38
Move the MBlaze ELF writer bits to lib/Target/MBlaze.
...
llvm-svn: 147129
2011-12-22 02:28:24 +00:00
Rafael Espindola
9c71db357e
Move PPC bits to lib/Target/PowerPC.
...
llvm-svn: 147124
2011-12-22 01:57:09 +00:00
Akira Hatanaka
e7bcf63d98
Local dynamic TLS model for direct object output. Create the correct TLS MIPS
...
ELF relocations.
Patch by Jack Carter.
llvm-svn: 147118
2011-12-22 01:05:17 +00:00
Rafael Espindola
ee837037ee
Move the ARM specific parts of the ELF writer to Target/ARM.
...
llvm-svn: 147115
2011-12-22 00:37:50 +00:00
Rafael Espindola
943ba34584
getEFlags is const.
...
llvm-svn: 147114
2011-12-22 00:21:50 +00:00
Rafael Espindola
6442ed0e79
Switch from WriteEFlags to getEFlags in preparation for moving it
...
to Target/.
llvm-svn: 147087
2011-12-21 20:09:46 +00:00
Rafael Espindola
8c9b0dea02
Move the X86 specific bits of the ELF writer to the Target/X86 directory.
...
Other targets will follow shortly.
llvm-svn: 147060
2011-12-21 17:30:17 +00:00
Rafael Espindola
f9c7f9e3f3
Reduce the exposure of Triple::OSType in the ELF object writer. This will
...
avoid including ADT/Triple.h in many places when the target specific bits are
moved.
llvm-svn: 147059
2011-12-21 17:00:36 +00:00
Rafael Espindola
318dc6e7f4
Small refactoring so that RelocNeedsGOT can stay in the target independent
...
side when the target specific bits are moved to the Target directory.
llvm-svn: 147053
2011-12-21 14:26:29 +00:00
Akira Hatanaka
28140f744a
Relocation against a symbol, instead of against section. We had some extreme
...
test cases where there were a lot of relocations applied relative to a large
rodata section. Gas would create a symbol for each of these whereas we would
be relative to the beginning of the rodata section. This change mimics what
gas does.
Patch by Jack Carter.
llvm-svn: 146468
2011-12-13 02:27:40 +00:00
Rafael Espindola
b5c511f7b7
Handle reloc_signed_4byte in here. Not doing so was a regression from my
...
previous commit. It is strange that we see it in 32 bits. We already
have a fixme about it.
llvm-svn: 146273
2011-12-09 19:57:29 +00:00
Rafael Espindola
82e22767cf
Handle the case of the magical _GLOBAL_OFFSET_TABLE_ showing up in a
...
symbol difference. This matches gas behavior and fixes PR11513.
We still don't handle _GLOBAL_OFFSET_TABLE_ in data sections.
llvm-svn: 146238
2011-12-09 03:03:58 +00:00
Bruno Cardoso Lopes
d610f464bf
Add a few moreLocal/Global R_MIPS_GOT related fixups and
...
make the addend fixup code a bit more generic
Patch by Jack Carter.
llvm-svn: 145998
2011-12-07 00:28:57 +00:00
Bruno Cardoso Lopes
379e4c7a14
Explicit symbols for gnu mimicing relocations. Patch by Jack Carter
...
llvm-svn: 145911
2011-12-06 03:34:42 +00:00
Jim Grosbach
c3c8c0eddd
Tidy up. Hard tabs.
...
llvm-svn: 145878
2011-12-06 00:13:09 +00:00
Jim Grosbach
93874e36fa
Switch MCAssembler to method names starting w/ lower-case.
...
per http://llvm.org/docs/CodingStandards.html#ll_naming
llvm-svn: 145873
2011-12-06 00:03:48 +00:00
Akira Hatanaka
9071684dcf
This patch addresses gp relative fixups/relocations for jump tables.
...
llvm-svn: 145112
2011-11-23 22:18:04 +00:00
Jim Grosbach
176025e803
Tidy up. 80 columns.
...
llvm-svn: 144649
2011-11-15 16:46:22 +00:00
Bruno Cardoso Lopes
8c7af01ee7
Add mips ELF relocation types. Patch by Jack Carter!
...
llvm-svn: 143738
2011-11-04 22:24:36 +00:00
Nick Lewycky
509687695f
Also create a shndx even if there are no symbols. This lets us test
...
.symtab_shndx reading and writing together, and finally we have a testcase for
r141440.
llvm-svn: 141641
2011-10-11 03:54:50 +00:00
Nick Lewycky
8b0cf65af7
Don't emit the symbol table entry for the .symtab_shndx section either.
...
llvm-svn: 141440
2011-10-07 23:29:53 +00:00
Nick Lewycky
95b57a67cb
Remove extraneous curlies. No functionality change.
...
llvm-svn: 141439
2011-10-07 23:28:32 +00:00
Nick Lewycky
fe793806e9
Don't emit a shstrtabindex in the reserved range. Spotted by inspection and
...
patch by Cary Coutant!
llvm-svn: 141413
2011-10-07 20:58:24 +00:00
Nick Lewycky
112a7ae899
Clarify/fix typo. No functionality change.
...
llvm-svn: 141412
2011-10-07 20:56:23 +00:00
Akira Hatanaka
067f6ce2f1
Add definition of MipsELFObjectWriter.
...
Patch by Reed Kotler at Mips Technologies.
llvm-svn: 140891
2011-09-30 21:55:40 +00:00
Roman Divacky
23593046fc
Introduce adjustFixupOffset that adjusts the fixup offset of a relocation.
...
This is meant to be overriden by backends. Implement an override on PowerPC
which adjusts the offset by 2 for ha16/lo16 relocation kinds. This removes
a commented out hack and enables hello world to be compiled on PowerPC.
llvm-svn: 136905
2011-08-04 19:08:19 +00:00
Rafael Espindola
77b83123f6
Add an assert to check that the Addend fits the file format.
...
llvm-svn: 136868
2011-08-04 13:05:26 +00:00
Jason W Kim
18ca6290c9
Fix http://llvm.org/bugs/show_bug.cgi?id=10568
...
Move the reloc size assert into AsmBackend - where it is more apropos.
llvm-svn: 136855
2011-08-04 00:38:45 +00:00
Roman Divacky
c2f4208960
Comment out the PPC relocation offset adjustment. It must be done differently.
...
This unbreaks some tests.
llvm-svn: 136692
2011-08-02 16:15:32 +00:00
Roman Divacky
7453a0dcd6
Sketch out PowerPC ELF writer. This is enough to get clang -integrated-as
...
to compile a working hello world on FreeBSD/PPC32.
llvm-svn: 136689
2011-08-02 15:51:38 +00:00
Evan Cheng
2a0a4e1a73
Rename TargetAsmBackend to MCAsmBackend; rename createAsmBackend to createMCAsmBackend.
...
llvm-svn: 136010
2011-07-25 23:24:55 +00:00
Evan Cheng
6fb04ad32e
Refactor X86 target to separate MC code from Target code.
...
llvm-svn: 135930
2011-07-25 18:43:53 +00:00
Evan Cheng
13d54fc7c9
Move TargetAsmParser.h TargetAsmBackend.h and TargetAsmLexer.h to MC where they belong.
...
llvm-svn: 135833
2011-07-23 00:45:41 +00:00
Evan Cheng
41aa34c417
Sink ARM mc routines into MCTargetDesc.
...
llvm-svn: 135825
2011-07-23 00:00:19 +00:00
Jason W Kim
a5b62f4fc7
Remove an uneeded switch - Turns out reloc results are identical w/o the switch. (face+palm)
...
llvm-svn: 132790
2011-06-09 19:13:45 +00:00
Rafael Espindola
358f2ee1d2
Produce an undefined reference to _GLOBAL_OFFSET_TABLE_ if we have a
...
VK_GOTOFF reloc. This matches as' behavior, but it is not clear why the linker
might need this, so I added a FIXME.
I could test this by duplicating test/MC/ELF/got.s, but it doesn't look
worthwhile.
llvm-svn: 132655
2011-06-05 01:20:06 +00:00
Nick Lewycky
36e7570fb3
Add support for @GOTPTOFF in i386 mode.
...
llvm-svn: 132643
2011-06-04 17:38:07 +00:00
Rafael Espindola
27dbdbdf4c
fixes target address tBL and tBLX and sets relocation type
...
of tBL/tBLX to R_ARM_THM_CALL (ARM ELF 4.7.1.6)
Patch by koan-sin tan.
llvm-svn: 131748
2011-05-20 20:01:01 +00:00
Jason W Kim
4b3c43cf90
Add a FIXME reminder to remove ForceARMElfPIC switch.
...
llvm-svn: 131411
2011-05-16 16:35:21 +00:00
Rafael Espindola
e0b15205c1
sets bit 0 of the function address of thumb function in .symtab
...
("T is 1 if the target symbol S has type STT_FUNC and the
symbol addresses a Thumb instruction ;it is 0 otherwise."
from "ELF for the ARM Architecture" 4.7.1.2)
Patch by Koan-Sin Tan!
llvm-svn: 131406
2011-05-16 16:17:21 +00:00
Matt Beaumont-Gay
20dbed0a8b
Remove an unused variable and move a couple others inside DEBUG.
...
llvm-svn: 131208
2011-05-11 23:34:51 +00:00
Jason W Kim
f6c2c6a38e
Address the last bit of relocation flag related divergence betweeen
...
LLVM and binutils.
With this patch, there are no functional differences between the .o
produced directly from LLVM versus the .s to .o via GNU as, for relocation tags
at least, for both PIC and non-PIC modes.
Because some non-PIC reloc tags are used (legally) on PIC, so IsPCRel flag is
necessary but not sufficient to determine whether the overall codegen mode is
PIC or not. Why is this necessary? There is an incompatibility of how relocs
are emitted in the .rodata section. Binutils PIC likes to emit certain relocs
as section relative offsets. Non-PIC does not do this.
So I added a hidden switch on the ELFObjectwriter "-arm-elf-force-pic" which
forces the objectwriter to pretend that all relocs are for PIC mode.
Todo: Activate ForceARMElfPIC to true if -relocation-model=pic is selected
on llc.
Todo: There are probably more issues for PIC mode on ARM/MC/ELF...
Todo: Existing tests in MC/ARM/elf-reloc*.ll need to be converted over to .s
tests as well as expanded to cover the gamut.
llvm-svn: 131205
2011-05-11 22:53:06 +00:00
Rafael Espindola
2f2c3bf31f
Simplify the handling of pcrel relocations on ELF. Now we do the right thing
...
for all symbol differences and can drop the old EmitPCRelSymbolValue
method.
This also make getExprForFDESymbol on ELF equal to the one on MachO, and it
can be made non-virtual.
llvm-svn: 130634
2011-05-01 03:50:49 +00:00
Rafael Espindola
19119075c4
Micro optimization and improved similarity with gas' output:
...
When two section names share a suffix, reuse the entry in shstrtab.
llvm-svn: 129115
2011-04-07 23:21:52 +00:00
Rafael Espindola
b5c6ae67ac
Write the section table and the section data in the same order that
...
gun as does. This makes it a lot easier to compare the output of both
as the addresses are now a lot closer.
llvm-svn: 127972
2011-03-20 18:44:20 +00:00
Jan Sjödin
3c1fa9a68b
Split MCEELFStreamer and ELFObjectWriter into .h and .cpp files, so that other components can use them.
...
llvm-svn: 126942
2011-03-03 14:52:12 +00:00