6e80c28017 
								
							 
						 
						
							
							
								
								Prune some includes and forward declarations.  
							
							... 
							
							
							
							llvm-svn: 153429 
							
						 
						
							2012-03-26 06:58:25 +00:00  
				
					
						
							
							
								 
						
							
								64ad2cf1e4 
								
							 
						 
						
							
							
								
								Add a hook in MCELFObjectTargetWriter to allow targets to sort relocation  
							
							... 
							
							
							
							entries in the relocation table before they are written out to the file. 
llvm-svn: 153345 
							
						 
						
							2012-03-23 23:06:45 +00:00  
				
					
						
							
							
								 
						
							
								084b9f4134 
								
							 
						 
						
							
							
								
								Remove a bunch of unused variable assignments.  
							
							... 
							
							
							
							Found by the clang static analyzer.
llvm-svn: 148541 
							
						 
						
							2012-01-20 14:42:32 +00:00  
				
					
						
							
							
								 
						
							
								29abd977de 
								
							 
						 
						
							
							
								
								Kill the monstrosity that was ELFObjectWriter.h.  
							
							... 
							
							
							
							llvm-svn: 147136 
							
						 
						
							2011-12-22 03:38:00 +00:00  
				
					
						
							
							
								 
						
							
								34a68afc05 
								
							 
						 
						
							
							
								
								Misc cleanups.  
							
							... 
							
							
							
							llvm-svn: 147135 
							
						 
						
							2011-12-22 03:24:43 +00:00  
				
					
						
							
							
								 
						
							
								1dc45d8df4 
								
							 
						 
						
							
							
								
								Move the Mips only bits of the ELF writer to lib/Target/Mips.  
							
							... 
							
							
							
							llvm-svn: 147133 
							
						 
						
							2011-12-22 03:03:17 +00:00  
				
					
						
							
							
								 
						
							
								cc369ac0a2 
								
							 
						 
						
							
							
								
								Move the MBlaze ELF writer bits to lib/Target/MBlaze.  
							
							... 
							
							
							
							llvm-svn: 147129 
							
						 
						
							2011-12-22 02:28:24 +00:00  
				
					
						
							
							
								 
						
							
								38a400df3b 
								
							 
						 
						
							
							
								
								Move PPC bits to lib/Target/PowerPC.  
							
							... 
							
							
							
							llvm-svn: 147124 
							
						 
						
							2011-12-22 01:57:09 +00:00  
				
					
						
							
							
								 
						
							
								e2eed9649e 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								a0124055b1 
								
							 
						 
						
							
							
								
								Move the ARM specific parts of the ELF writer to Target/ARM.  
							
							... 
							
							
							
							llvm-svn: 147115 
							
						 
						
							2011-12-22 00:37:50 +00:00  
				
					
						
							
							
								 
						
							
								6faa1533fb 
								
							 
						 
						
							
							
								
								getEFlags is const.  
							
							... 
							
							
							
							llvm-svn: 147114 
							
						 
						
							2011-12-22 00:21:50 +00:00  
				
					
						
							
							
								 
						
							
								f61ff34252 
								
							 
						 
						
							
							
								
								Switch from WriteEFlags to getEFlags in preparation for moving it  
							
							... 
							
							
							
							to Target/.
llvm-svn: 147087 
							
						 
						
							2011-12-21 20:09:46 +00:00  
				
					
						
							
							
								 
						
							
								b264d33854 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								1ad4095d6b 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								9e252bf038 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								e41963ce47 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								7e0a793183 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								0a7f336475 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								61e6d987bf 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								87cfffe149 
								
							 
						 
						
							
							
								
								Explicit symbols for gnu mimicing relocations. Patch by Jack Carter  
							
							... 
							
							
							
							llvm-svn: 145911 
							
						 
						
							2011-12-06 03:34:42 +00:00  
				
					
						
							
							
								 
						
							
								46be301c4c 
								
							 
						 
						
							
							
								
								Tidy up. Hard tabs.  
							
							... 
							
							
							
							llvm-svn: 145878 
							
						 
						
							2011-12-06 00:13:09 +00:00  
				
					
						
							
							
								 
						
							
								18e2fe47fa 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								f5ddf13f79 
								
							 
						 
						
							
							
								
								This patch addresses gp relative fixups/relocations for jump tables.  
							
							... 
							
							
							
							llvm-svn: 145112 
							
						 
						
							2011-11-23 22:18:04 +00:00  
				
					
						
							
							
								 
						
							
								0dde349df1 
								
							 
						 
						
							
							
								
								Tidy up. 80 columns.  
							
							... 
							
							
							
							llvm-svn: 144649 
							
						 
						
							2011-11-15 16:46:22 +00:00  
				
					
						
							
							
								 
						
							
								c9473e9809 
								
							 
						 
						
							
							
								
								Add mips ELF relocation types. Patch by Jack Carter!  
							
							... 
							
							
							
							llvm-svn: 143738 
							
						 
						
							2011-11-04 22:24:36 +00:00  
				
					
						
							
							
								 
						
							
								29e7b315ac 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								133a16871f 
								
							 
						 
						
							
							
								
								Don't emit the symbol table entry for the .symtab_shndx section either.  
							
							... 
							
							
							
							llvm-svn: 141440 
							
						 
						
							2011-10-07 23:29:53 +00:00  
				
					
						
							
							
								 
						
							
								c6ac5f7388 
								
							 
						 
						
							
							
								
								Remove extraneous curlies. No functionality change.  
							
							... 
							
							
							
							llvm-svn: 141439 
							
						 
						
							2011-10-07 23:28:32 +00:00  
				
					
						
							
							
								 
						
							
								8b02d36a23 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								4eb1143038 
								
							 
						 
						
							
							
								
								Clarify/fix typo. No functionality change.  
							
							... 
							
							
							
							llvm-svn: 141412 
							
						 
						
							2011-10-07 20:56:23 +00:00  
				
					
						
							
							
								 
						
							
								e67a10d54d 
								
							 
						 
						
							
							
								
								Add definition of MipsELFObjectWriter.  
							
							... 
							
							
							
							Patch by Reed Kotler at Mips Technologies.
llvm-svn: 140891 
							
						 
						
							2011-09-30 21:55:40 +00:00  
				
					
						
							
							
								 
						
							
								dfbecd1eb7 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								d7facaf371 
								
							 
						 
						
							
							
								
								Add an assert to check that the Addend fits the file format.  
							
							... 
							
							
							
							llvm-svn: 136868 
							
						 
						
							2011-08-04 13:05:26 +00:00  
				
					
						
							
							
								 
						
							
								e4df09f7ba 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								11a044634a 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								038c1a1a73 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								5928e69d20 
								
							 
						 
						
							
							
								
								Rename TargetAsmBackend to MCAsmBackend; rename createAsmBackend to createMCAsmBackend.  
							
							... 
							
							
							
							llvm-svn: 136010 
							
						 
						
							2011-07-25 23:24:55 +00:00  
				
					
						
							
							
								 
						
							
								7e763d86ba 
								
							 
						 
						
							
							
								
								Refactor X86 target to separate MC code from Target code.  
							
							... 
							
							
							
							llvm-svn: 135930 
							
						 
						
							2011-07-25 18:43:53 +00:00  
				
					
						
							
							
								 
						
							
								f2596bc62a 
								
							 
						 
						
							
							
								
								Move TargetAsmParser.h TargetAsmBackend.h and TargetAsmLexer.h to MC where they belong.  
							
							... 
							
							
							
							llvm-svn: 135833 
							
						 
						
							2011-07-23 00:45:41 +00:00  
				
					
						
							
							
								 
						
							
								ad5f485957 
								
							 
						 
						
							
							
								
								Sink ARM mc routines into MCTargetDesc.  
							
							... 
							
							
							
							llvm-svn: 135825 
							
						 
						
							2011-07-23 00:00:19 +00:00  
				
					
						
							
							
								 
						
							
								7fbe7914af 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								940a0ee5ca 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								34fa1684e7 
								
							 
						 
						
							
							
								
								Add support for @GOTPTOFF in i386 mode.  
							
							... 
							
							
							
							llvm-svn: 132643 
							
						 
						
							2011-06-04 17:38:07 +00:00  
				
					
						
							
							
								 
						
							
								1866808384 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								94c31fdd31 
								
							 
						 
						
							
							
								
								Add a FIXME reminder to remove ForceARMElfPIC switch.  
							
							... 
							
							
							
							llvm-svn: 131411 
							
						 
						
							2011-05-16 16:35:21 +00:00  
				
					
						
							
							
								 
						
							
								e90c1cb221 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								7c6c90b35d 
								
							 
						 
						
							
							
								
								Remove an unused variable and move a couple others inside DEBUG.  
							
							... 
							
							
							
							llvm-svn: 131208 
							
						 
						
							2011-05-11 23:34:51 +00:00  
				
					
						
							
							
								 
						
							
								c09e726455 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								fd05785324 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								b80875edee 
								
							 
						 
						
							
							
								
								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