summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/ELFObjectWriter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Local dynamic TLS model for direct object output. Create the correct TLS MIPSAkira Hatanaka2011-12-221-0/+9
| | | | | | | | ELF relocations. Patch by Jack Carter. llvm-svn: 147118
* Move the ARM specific parts of the ELF writer to Target/ARM.Rafael Espindola2011-12-221-241/+1
| | | | llvm-svn: 147115
* getEFlags is const.Rafael Espindola2011-12-221-2/+2
| | | | llvm-svn: 147114
* Switch from WriteEFlags to getEFlags in preparation for moving itRafael Espindola2011-12-211-6/+5
| | | | | | to Target/. llvm-svn: 147087
* Move the X86 specific bits of the ELF writer to the Target/X86 directory.Rafael Espindola2011-12-211-191/+10
| | | | | | Other targets will follow shortly. llvm-svn: 147060
* Reduce the exposure of Triple::OSType in the ELF object writer. This willRafael Espindola2011-12-211-5/+1
| | | | | | | avoid including ADT/Triple.h in many places when the target specific bits are moved. llvm-svn: 147059
* Small refactoring so that RelocNeedsGOT can stay in the target independentRafael Espindola2011-12-211-17/+10
| | | | | | side when the target specific bits are moved to the Target directory. llvm-svn: 147053
* Relocation against a symbol, instead of against section. We had some extremeAkira Hatanaka2011-12-131-2/+2
| | | | | | | | | | | 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
* Handle reloc_signed_4byte in here. Not doing so was a regression from myRafael Espindola2011-12-091-0/+1
| | | | | | | previous commit. It is strange that we see it in 32 bits. We already have a fixme about it. llvm-svn: 146273
* Handle the case of the magical _GLOBAL_OFFSET_TABLE_ showing up in aRafael Espindola2011-12-091-7/+18
| | | | | | | | symbol difference. This matches gas behavior and fixes PR11513. We still don't handle _GLOBAL_OFFSET_TABLE_ in data sections. llvm-svn: 146238
* Add a few moreLocal/Global R_MIPS_GOT related fixups andBruno Cardoso Lopes2011-12-071-1/+2
| | | | | | | | make the addend fixup code a bit more generic Patch by Jack Carter. llvm-svn: 145998
* Explicit symbols for gnu mimicing relocations. Patch by Jack CarterBruno Cardoso Lopes2011-12-061-0/+14
| | | | llvm-svn: 145911
* Tidy up. Hard tabs.Jim Grosbach2011-12-061-1/+1
| | | | llvm-svn: 145878
* Switch MCAssembler to method names starting w/ lower-case.Jim Grosbach2011-12-061-1/+1
| | | | | | per http://llvm.org/docs/CodingStandards.html#ll_naming llvm-svn: 145873
* This patch addresses gp relative fixups/relocations for jump tables.Akira Hatanaka2011-11-231-0/+9
| | | | llvm-svn: 145112
* Tidy up. 80 columns.Jim Grosbach2011-11-151-2/+2
| | | | llvm-svn: 144649
* Add mips ELF relocation types. Patch by Jack Carter!Bruno Cardoso Lopes2011-11-041-6/+55
| | | | llvm-svn: 143738
* Also create a shndx even if there are no symbols. This lets us testNick Lewycky2011-10-111-0/+3
| | | | | | | .symtab_shndx reading and writing together, and finally we have a testcase for r141440. llvm-svn: 141641
* Don't emit the symbol table entry for the .symtab_shndx section either.Nick Lewycky2011-10-071-1/+2
| | | | llvm-svn: 141440
* Remove extraneous curlies. No functionality change.Nick Lewycky2011-10-071-2/+1
| | | | llvm-svn: 141439
* Don't emit a shstrtabindex in the reserved range. Spotted by inspection andNick Lewycky2011-10-071-1/+1
| | | | | | patch by Cary Coutant! llvm-svn: 141413
* Clarify/fix typo. No functionality change.Nick Lewycky2011-10-071-2/+2
| | | | llvm-svn: 141412
* Add definition of MipsELFObjectWriter.Akira Hatanaka2011-09-301-0/+18
| | | | | | Patch by Reed Kotler at Mips Technologies. llvm-svn: 140891
* Introduce adjustFixupOffset that adjusts the fixup offset of a relocation.Roman Divacky2011-08-041-12/+14
| | | | | | | | 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
* Add an assert to check that the Addend fits the file format.Rafael Espindola2011-08-041-0/+6
| | | | llvm-svn: 136868
* Fix http://llvm.org/bugs/show_bug.cgi?id=10568Jason W Kim2011-08-041-1/+0
| | | | | | Move the reloc size assert into AsmBackend - where it is more apropos. llvm-svn: 136855
* Comment out the PPC relocation offset adjustment. It must be done differently.Roman Divacky2011-08-021-0/+4
| | | | | | This unbreaks some tests. llvm-svn: 136692
* Sketch out PowerPC ELF writer. This is enough to get clang -integrated-asRoman Divacky2011-08-021-0/+70
| | | | | | to compile a working hello world on FreeBSD/PPC32. llvm-svn: 136689
* Rename TargetAsmBackend to MCAsmBackend; rename createAsmBackend to ↵Evan Cheng2011-07-251-1/+1
| | | | | | createMCAsmBackend. llvm-svn: 136010
* Refactor X86 target to separate MC code from Target code.Evan Cheng2011-07-251-1/+1
| | | | llvm-svn: 135930
* Move TargetAsmParser.h TargetAsmBackend.h and TargetAsmLexer.h to MC where ↵Evan Cheng2011-07-231-2/+2
| | | | | | they belong. llvm-svn: 135833
* Sink ARM mc routines into MCTargetDesc.Evan Cheng2011-07-231-1/+1
| | | | llvm-svn: 135825
* Remove an uneeded switch - Turns out reloc results are identical w/o the ↵Jason W Kim2011-06-091-12/+1
| | | | | | switch. (face+palm) llvm-svn: 132790
* Produce an undefined reference to _GLOBAL_OFFSET_TABLE_ if we have aRafael Espindola2011-06-051-0/+2
| | | | | | | | | | 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
* Add support for @GOTPTOFF in i386 mode.Nick Lewycky2011-06-041-0/+3
| | | | llvm-svn: 132643
* fixes target address tBL and tBLX and sets relocation typeRafael Espindola2011-05-201-0/+11
| | | | | | | | of tBL/tBLX to R_ARM_THM_CALL (ARM ELF 4.7.1.6) Patch by koan-sin tan. llvm-svn: 131748
* Add a FIXME reminder to remove ForceARMElfPIC switch.Jason W Kim2011-05-161-0/+4
| | | | llvm-svn: 131411
* sets bit 0 of the function address of thumb function in .symtabRafael Espindola2011-05-161-2/+7
| | | | | | | | | | ("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
* Remove an unused variable and move a couple others inside DEBUG.Matt Beaumont-Gay2011-05-111-6/+6
| | | | llvm-svn: 131208
* Address the last bit of relocation flag related divergence betweeenJason W Kim2011-05-111-20/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Simplify the handling of pcrel relocations on ELF. Now we do the right thingRafael Espindola2011-05-011-1/+5
| | | | | | | | | | 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
* Micro optimization and improved similarity with gas' output:Rafael Espindola2011-04-071-10/+38
| | | | | | When two section names share a suffix, reuse the entry in shstrtab. llvm-svn: 129115
* Write the section table and the section data in the same order thatRafael Espindola2011-03-201-93/+196
| | | | | | | 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
* Split MCEELFStreamer and ELFObjectWriter into .h and .cpp files, so that ↵Jan Sjödin2011-03-031-363/+1
| | | | | | other components can use them. llvm-svn: 126942
* PR9352: Always emit a relocation for weak symbols. Not emitting relocationsEli Friedman2011-03-031-0/+19
| | | | | | | | for calls to weak symbols with a definition has the appearance of working with LLVM-generated code because weak symbol definitions are put in their own sections. llvm-svn: 126933
* Make all static functions become static class methods. Move shared ↵Jan Sjödin2011-02-281-89/+77
| | | | | | (duplicated) functions to new MCELF class. llvm-svn: 126686
* Put in the symbol table symbols only used in a .globl statement.Rafael Espindola2011-02-231-1/+5
| | | | | | Fixes PR9292. llvm-svn: 126330
* Handle FK_PCRel_1 and add a test case for this and FK_PCRel_4.Joerg Sonnenberger2011-02-211-0/+4
| | | | llvm-svn: 126157
* Gas is very inconsistent about when a relaxation/relocation is needed. DoRafael Espindola2011-02-161-25/+0
| | | | | | the right thing and stop trying to copy it. Fixes PR8944. llvm-svn: 125648
* Teach ARM/MC/ELF about gcc compatible reloc output to get past odd linkageJason W Kim2011-02-071-3/+45
| | | | | | | | | | | | | | | | | | failures with relocations. The code committed is a first cut at compatibility for emitted relocations in ELF .o. Why do this? because existing ARM tools like emitting relocs symbols as explicit relocations, not as section-offset relocs. Result is that with these changes, 1) relocs are now substantially identical what to gcc outputs. 2) larger apps (including many spec2k tests) compile, cross-link, and pass Added reminder fixme to tests for future conversion to .s form. llvm-svn: 124996
OpenPOWER on IntegriCloud