summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/ELFObjectWriter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Use the new script to sort the includes of every file under lib.Chandler Carruth2012-12-031-4/+3
| | | | | | | | | | | | | | | | | Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] llvm-svn: 169131
* Initial TOC support for PowerPC64 object creationAdhemerval Zanella2012-10-251-5/+13
| | | | | | | | | | | | | | This patch adds initial PPC64 TOC MC object creation using the small mcmodel (a single 64K TOC) adding the some TOC relocations (R_PPC64_TOC, R_PPC64_TOC16, and R_PPC64_TOC16DS). The addition of 'undefinedExplicitRelSym' hook on 'MCELFObjectTargetWriter' is meant to avoid the creation of an unreferenced ".TOC." symbol (used in the .odp creation) as well to set the R_PPC64_TOC relocation target as the temporary ".TOC." symbol. On PPC64 ABI, the R_PPC64_TOC relocation should not point to any symbol. llvm-svn: 166677
* Check .rela instead of ELF64 for the compensation vaue resettingMichael Liao2012-10-161-2/+1
| | | | llvm-svn: 166051
* Fix comment.Rafael Espindola2012-08-271-3/+4
| | | | llvm-svn: 162678
* The ELF relocation record format is different for N64 Jack Carter2012-06-271-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | which many Mips 64 ABIs use than for O64 which many if not all other target ABIs use. Most architectures have the following 64 bit relocation record format: typedef struct { Elf64_Addr r_offset; /* Address of reference */ Elf64_Xword r_info; /* Symbol index and type of relocation */ } Elf64_Rel; typedef struct { Elf64_Addr r_offset; Elf64_Xword r_info; Elf64_Sxword r_addend; } Elf64_Rela; Whereas N64 has the following format: typedef struct { Elf64_Addr r_offset;/* Address of reference */ Elf64_Word r_sym; /* Symbol index */ Elf64_Byte r_ssym; /* Special symbol */ Elf64_Byte r_type3; /* Relocation type */ Elf64_Byte r_type2; /* Relocation type */ Elf64_Byte r_type; /* Relocation type */ } Elf64_Rel; typedef struct { Elf64_Addr r_offset;/* Address of reference */ Elf64_Word r_sym; /* Symbol index */ Elf64_Byte r_ssym; /* Special symbol */ Elf64_Byte r_type3; /* Relocation type */ Elf64_Byte r_type2; /* Relocation type */ Elf64_Byte r_type; /* Relocation type */ Elf64_Sxword r_addend; } Elf64_Rela; The structure is the same size, but the r_info data element is now 5 separate elements. Besides the content aspects, endian byte reordering will be different for the area with each element being endianized separately. I treat this as generic and continue to pass r_type as an integer masking and unmasking the byte sized N64 values for N64 mode. I've implemented this and it causes no affect on other current targets. This passes make check. Jack llvm-svn: 159299
* Tidy up. Trailing whitespace.Jim Grosbach2012-05-111-1/+1
| | | | llvm-svn: 156602
* Prune some includes and forward declarations.Craig Topper2012-03-261-3/+2
| | | | llvm-svn: 153429
* Add a hook in MCELFObjectTargetWriter to allow targets to sort relocationAkira Hatanaka2012-03-231-29/+5
| | | | | | entries in the relocation table before they are written out to the file. llvm-svn: 153345
* Remove a bunch of unused variable assignments.Benjamin Kramer2012-01-201-9/+2
| | | | | | Found by the clang static analyzer. llvm-svn: 148541
* Kill the monstrosity that was ELFObjectWriter.h.Rafael Espindola2011-12-221-1/+331
| | | | llvm-svn: 147136
* Misc cleanups.Rafael Espindola2011-12-221-20/+1
| | | | llvm-svn: 147135
* Move the Mips only bits of the ELF writer to lib/Target/Mips.Rafael Espindola2011-12-221-101/+1
| | | | llvm-svn: 147133
* Move the MBlaze ELF writer bits to lib/Target/MBlaze.Rafael Espindola2011-12-221-47/+1
| | | | llvm-svn: 147129
* Move PPC bits to lib/Target/PowerPC.Rafael Espindola2011-12-221-75/+4
| | | | llvm-svn: 147124
* 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
OpenPOWER on IntegriCloud