summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/ELFObjectWriter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Add support for emitting ARM file attributes.Rafael Espindola2010-10-251-3/+1
| | | | llvm-svn: 117275
* Add X86::reloc_global_offset_table and use it to have a single place whereRafael Espindola2010-10-241-4/+5
| | | | | | we check for _GLOBAL_OFFSET_TABLE_. llvm-svn: 117241
* Making the e_machine configurable by the target backend in ELFObjectWriter.Wesley Peck2010-10-221-5/+9
| | | | llvm-svn: 117099
* Small cleanups and fixes in preparation for fixing _GLOBAL_OFFSET_TABLE_.Rafael Espindola2010-10-191-7/+11
| | | | llvm-svn: 116848
* Implement R_386_GOT32.Rafael Espindola2010-10-181-0/+3
| | | | llvm-svn: 116744
* Relocate with .bss instead of using the symbol. Matches gas behavior.Rafael Espindola2010-10-181-0/+3
| | | | llvm-svn: 116741
* Reenable assert.Rafael Espindola2010-10-181-1/+2
| | | | llvm-svn: 116738
* Produce ELF::R_386_GOTPC relocations.Rafael Espindola2010-10-181-1/+6
| | | | llvm-svn: 116728
* Make the bots happy.Rafael Espindola2010-10-181-1/+3
| | | | llvm-svn: 116719
* Produce a R_386_PLT32 when needed. Moved the default cases of switches to theRafael Espindola2010-10-181-7/+13
| | | | | | start for consistency. llvm-svn: 116715
* Handle GOTOFF correctly on i386.Rafael Espindola2010-10-181-5/+15
| | | | llvm-svn: 116711
* Fix a typo and silence unused variable warnings in -Asserts build.Benjamin Kramer2010-10-171-4/+2
| | | | llvm-svn: 116685
* Add a MCObjectFormat class so that code common to all targets that use aRafael Espindola2010-10-161-16/+5
| | | | | | | | | | | | single object format can be shared. This also adds support for mov zed+(bar-foo), %eax on ELF and COFF targets. llvm-svn: 116675
* Refactor alias handling to AliasedSymbol.Rafael Espindola2010-10-151-13/+15
| | | | llvm-svn: 116600
* Refactor code a bit and avoid creating unnecessary entries in the stringRafael Espindola2010-10-151-19/+19
| | | | | | map. llvm-svn: 116579
* Remove some code duplication.Rafael Espindola2010-10-141-49/+18
| | | | llvm-svn: 116484
* Another case of 256 sections not being enough :-)Rafael Espindola2010-10-061-1/+1
| | | | llvm-svn: 115858
* Get binding and visibility info from the the alias, but Type from the symbolRafael Espindola2010-10-061-3/+25
| | | | | | being aliased. llvm-svn: 115836
* If a symbol is global, reloc against it even if it is in a mergeable section.Rafael Espindola2010-10-061-3/+3
| | | | llvm-svn: 115817
* Make sure weak symbols are listed after the local ones.Rafael Espindola2010-10-061-2/+3
| | | | llvm-svn: 115795
* Correctly handle GOTPCREL relocations.Rafael Espindola2010-10-061-3/+6
| | | | llvm-svn: 115793
* Use a relocation against the symbol if it is a PLT and the symbol is in anotherRafael Espindola2010-10-051-2/+11
| | | | | | section. Common because of linkonce sections. llvm-svn: 115718
* Implement more alias cases.Rafael Espindola2010-10-051-0/+11
| | | | llvm-svn: 115699
* 256 sections should be enough for anyone...Rafael Espindola2010-10-051-1/+1
| | | | llvm-svn: 115687
* Don't crash in a strange .size directive.Rafael Espindola2010-10-051-5/+15
| | | | llvm-svn: 115684
* Implement a simple alias case and refactor the code a bit so that theRafael Espindola2010-10-051-17/+35
| | | | | | isInSymtab and isLocal logic in the two loops don't get easily out of sync. llvm-svn: 115643
* Produce a undefined reference to _GLOBAL_OFFSET_TABLE_ when needed.Rafael Espindola2010-10-051-1/+25
| | | | llvm-svn: 115623
* On ELF we need to know which symbols are used in relocations to decide ifRafael Espindola2010-10-051-23/+44
| | | | | | | they should be in the symbol table or not. Instead of "guessing", just compute the symbol table after the relocations are known. llvm-svn: 115619
* Implement ELF::R_X86_64_GOTPCREL.Rafael Espindola2010-10-041-0/+3
| | | | llvm-svn: 115547
* Move isFixupKindX86PCRel.Rafael Espindola2010-10-041-12/+12
| | | | llvm-svn: 115545
* Produce a R_X86_64_PLT32 when needed.Rafael Espindola2010-10-041-1/+10
| | | | llvm-svn: 115541
* Produce a R_X86_64_GOT32 when needed.Rafael Espindola2010-10-041-1/+12
| | | | llvm-svn: 115537
* Include the section address in the computation of the relocation.Rafael Espindola2010-10-041-1/+8
| | | | llvm-svn: 115509
* Correctly compute the relocation when it is not in the first fragment.Rafael Espindola2010-10-041-1/+1
| | | | llvm-svn: 115506
* Implement a very basic PIC case.Rafael Espindola2010-10-031-0/+7
| | | | llvm-svn: 115454
* Factor some logic into ShouldRelocOnSymbol. This simplifies the code andRafael Espindola2010-09-301-38/+31
| | | | | | | fixes some cases where we were producing relocations with at symbol that should use a section instead. llvm-svn: 115194
* Correctly produce R_X86_64_32 or R_X86_64_32S.Rafael Espindola2010-09-301-8/+9
| | | | | | | | | | | | | With this patch in movq $foo, foo(%rip) foo: .long foo We produce a R_X86_64_32S for the first relocation and R_X86_64_32 for the second one. llvm-svn: 115134
* Make it possible for the MCObjectWriter to decide if a given fixup is fullyRafael Espindola2010-09-301-4/+51
| | | | | | | | | | | resolved or not. Different object files have different restrictions and different native assemblers have different idiosyncrasies we want to emulate for now. Move the existing MachO logic to the new place and implement an ELF one that gets fixups to globals right. llvm-svn: 115131
* On elf, undefined symbols can start with .L.Rafael Espindola2010-09-281-1/+4
| | | | llvm-svn: 114958
* Write relocations in the end of the file. This matches what gas does andRafael Espindola2010-09-271-2/+1
| | | | | | makes files easier to diff. llvm-svn: 114898
* Factor symbol value computation into a function.Rafael Espindola2010-09-271-9/+17
| | | | llvm-svn: 114891
* Move ELF to HasReliableSymbolDifference=true. Also take the opportunity to putRafael Espindola2010-09-251-7/+15
| | | | | | symbols defined in merge sections in independent atoms. llvm-svn: 114786
* Reapply 114678 and 114667. Reverting them did not fix the bot:Rafael Espindola2010-09-241-2/+5
| | | | | | http://google1.osuosl.org:8011/builders/llvm-gcc-i386-linux-selfhost/builds/69 llvm-svn: 114761
* Revert 114678 and 114667 to see ifRafael Espindola2010-09-241-5/+2
| | | | | | | | http://google1.osuosl.org:8011/builders/llvm-gcc-i386-linux-selfhost gets happy. llvm-svn: 114742
* Correctly handle weak undefined symbols. Before we would get a invalid bindingRafael Espindola2010-09-231-5/+20
| | | | | | (2 == STB_WEAK | STB_GLOBAL). llvm-svn: 114690
* Correctly compute the offset of the symbol. Forgot these bits from theRafael Espindola2010-09-231-1/+4
| | | | | | last commit. llvm-svn: 114678
* Represent relocations against local symbols as relocations against the sectionRafael Espindola2010-09-231-1/+1
| | | | | | | | | they are in. Both ways should be equivalent, but gas produces relocations against the section. Roman wrote the patch, I added the test. llvm-svn: 114667
* Fix the FIXME.Rafael Espindola2010-09-231-1/+1
| | | | llvm-svn: 114639
* Fix typo and add a FIXME.Rafael Espindola2010-09-221-1/+2
| | | | llvm-svn: 114570
* Revert unrelated change that was accidentally included in the previous commit.Rafael Espindola2010-09-211-4/+1
| | | | llvm-svn: 114383
OpenPOWER on IntegriCloud