07de07eeea 
								
							 
						 
						
							
							
								
								Fix handling of @IDNTPOFF relocations, they need to get STT_TLS.  
							
							... 
							
							
							
							While here, add VK_ARM_TPOFF and VK_ARM_GOTTPOFF, too.
llvm-svn: 127780 
							
						 
						
							2011-03-17 00:35:10 +00:00  
				
					
						
							
							
								 
						
							
								771911e28b 
								
							 
						 
						
							
							
								
								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  
				
					
						
							
							
								 
						
							
								30a52dec93 
								
							 
						 
						
							
							
								
								Make all static functions become static class methods. Move shared (duplicated) functions to new MCELF class.  
							
							... 
							
							
							
							llvm-svn: 126686 
							
						 
						
							2011-02-28 21:45:04 +00:00  
				
					
						
							
							
								 
						
							
								fcf51fd298 
								
							 
						 
						
							
							
								
								Roll out r126425 and r126450 to see if it fixes the failures on the buildbots.  
							
							... 
							
							
							
							llvm-svn: 126488 
							
						 
						
							2011-02-25 16:30:32 +00:00  
				
					
						
							
							
								 
						
							
								b037383a35 
								
							 
						 
						
							
							
								
								Enable DebugInfo support for COFF object files.  
							
							... 
							
							
							
							Patch by Nathan Jeffords!
llvm-svn: 126425 
							
						 
						
							2011-02-24 21:04:00 +00:00  
				
					
						
							
							
								 
						
							
								58ac6e1677 
								
							 
						 
						
							
							
								
								Add support for pushsection and popsection. Patch by Joerg Sonnenberger.  
							
							... 
							
							
							
							llvm-svn: 125629 
							
						 
						
							2011-02-16 01:08:29 +00:00  
				
					
						
							
							
								 
						
							
								b3eca9bb71 
								
							 
						 
						
							
							
								
								Add support for the --noexecstack option.  
							
							... 
							
							
							
							llvm-svn: 124077 
							
						 
						
							2011-01-23 17:55:27 +00:00  
				
					
						
							
							
								 
						
							
								0e7e34e476 
								
							 
						 
						
							
							
								
								Remove more duplicated code.  
							
							... 
							
							
							
							llvm-svn: 124056 
							
						 
						
							2011-01-23 04:43:11 +00:00  
				
					
						
							
							
								 
						
							
								aea4958ea6 
								
							 
						 
						
							
							
								
								Remove duplicated code.  
							
							... 
							
							
							
							llvm-svn: 124054 
							
						 
						
							2011-01-23 04:28:49 +00:00  
				
					
						
							
							
								 
						
							
								9141b611ad 
								
							 
						 
						
							
							
								
								Add basic support for .cfi_personality.  
							
							... 
							
							
							
							llvm-svn: 122566 
							
						 
						
							2010-12-26 20:20:31 +00:00  
				
					
						
							
							
								 
						
							
								4c1386add9 
								
							 
						 
						
							
							
								
								1. ARM/MC/ELF: A few more ELF relocs for .o  
							
							... 
							
							
							
							2. Fixed EmitLocalCommonSymbol for ELF (Yes, they exist. :)
   Test added.
llvm-svn: 121951 
							
						 
						
							2010-12-16 03:12:17 +00:00  
				
					
						
							
							
								 
						
							
								0a017a6db2 
								
							 
						 
						
							
							
								
								Fixed version of 121434 with no new memory leaks.  
							
							... 
							
							
							
							llvm-svn: 121471 
							
						 
						
							2010-12-10 07:39:47 +00:00  
				
					
						
							
							
								 
						
							
								a945a34c73 
								
							 
						 
						
							
							
								
								Revert my previous patch to make the valgrind bots happy.  
							
							... 
							
							
							
							llvm-svn: 121461 
							
						 
						
							2010-12-10 04:01:09 +00:00  
				
					
						
							
							
								 
						
							
								56eb741237 
								
							 
						 
						
							
							
								
								Initial support for the cfi directives. This is just enough to get  
							
							... 
							
							
							
							f:
        .cfi_startproc
        nop
        .cfi_endproc
assembled (on ELF).
llvm-svn: 121434 
							
						 
						
							2010-12-09 23:48:29 +00:00  
				
					
						
							
							
								 
						
							
								93e3cf0ebd 
								
							 
						 
						
							
							
								
								Sorry for such a large commit. The summary is that only MachO cares about the  
							
							... 
							
							
							
							actuall addresses in a .o file, so it is better to let the MachO writer compute
it.
This is good for two reasons. First, areas that shouldn't care about
addresses now don't have access to it. Second, the layout of each section
is independent. I should use this in a subsequent commit to speed it up.
Most of the patch is just removing the section address computation. The two
interesting parts are the change on how we handle padding in the end
of sections and how MachO can get the address of a-b when a and b are in
different sections.
Since now the expression evaluation normally doesn't know the section address,
it will think that a-b needs relocation and let the MachO writer know. Once
it has computed the section addresses, it calls back the expression evaluation
with the section addresses to resolve these expressions.
The remaining problem is the handling of padding. Currently it will create
a special alignment fragment at the end. Since that fragment doesn't update
the alignment of the section, it needs the real address to be computed.
Since now the layout will not compute a-b with a and b in different sections,
the only effect that the special alignment fragment has is update the
address size of the section. This can also be done by the MachO writer.
llvm-svn: 121076 
							
						 
						
							2010-12-07 00:27:36 +00:00  
				
					
						
							
							
								 
						
							
								57ab708bdd 
								
							 
						 
						
							
							
								
								Try to resolve symbol differences early, and if successful create a plain  
							
							... 
							
							
							
							data fragment. This reduces the time to assemble the test in 8711 from 60s to
54s.
llvm-svn: 120767 
							
						 
						
							2010-12-03 00:55:40 +00:00  
				
					
						
							
							
								 
						
							
								9065bfc692 
								
							 
						 
						
							
							
								
								Move EmitValueToOffset to the ObjectStreamer.  
							
							... 
							
							
							
							llvm-svn: 120691 
							
						 
						
							2010-12-02 05:59:38 +00:00  
				
					
						
							
							
								 
						
							
								3fa6fc1450 
								
							 
						 
						
							
							
								
								Add EmitInstToFragment to the generic object streamer.  
							
							... 
							
							
							
							llvm-svn: 120690 
							
						 
						
							2010-12-02 05:44:06 +00:00  
				
					
						
							
							
								 
						
							
								a084fd6e9d 
								
							 
						 
						
							
							
								
								Move EmitValue to MCObjectStreamer.  
							
							... 
							
							
							
							llvm-svn: 120269 
							
						 
						
							2010-11-28 23:08:47 +00:00  
				
					
						
							
							
								 
						
							
								e5b7415b21 
								
							 
						 
						
							
							
								
								Fixed verson of r120245.  
							
							... 
							
							
							
							Factor some duplicated code into MCObjectStreamer::EmitLabel.
llvm-svn: 120248 
							
						 
						
							2010-11-28 17:18:55 +00:00  
				
					
						
							
							
								 
						
							
								1679580cc9 
								
							 
						 
						
							
							
								
								Revert previous patch while I debug the darwin bootstrap failure.  
							
							... 
							
							
							
							llvm-svn: 120246 
							
						 
						
							2010-11-28 16:22:59 +00:00  
				
					
						
							
							
								 
						
							
								d4b3feb3f7 
								
							 
						 
						
							
							
								
								Factor some duplicated code into MCObjectStreamer::EmitLabel.  
							
							... 
							
							
							
							llvm-svn: 120245 
							
						 
						
							2010-11-28 15:54:36 +00:00  
				
					
						
							
							
								 
						
							
								b746531c2c 
								
							 
						 
						
							
							
								
								Avoid code duplication in the many unsupported EmitGPRel32Value implementations.  
							
							... 
							
							
							
							llvm-svn: 120243 
							
						 
						
							2010-11-28 15:09:24 +00:00  
				
					
						
							
							
								 
						
							
								8a3a7923eb 
								
							 
						 
						
							
							
								
								Define generic 1, 2 and 4 byte pc relative relocations. They are common  
							
							... 
							
							
							
							and at least the 4 byte one will be needed to implement the .cfi_* directives.
llvm-svn: 120240 
							
						 
						
							2010-11-28 14:17:56 +00:00  
				
					
						
							
							
								 
						
							
								e98d483b71 
								
							 
						 
						
							
							
								
								Fix and add tests for all cases in x86 and x86_64 where gnu as implicitly  
							
							... 
							
							
							
							sets the type of a symbol to STT_TLS.
llvm-svn: 120100 
							
						 
						
							2010-11-24 18:51:21 +00:00  
				
					
						
							
							
								 
						
							
								4e70ac7b68 
								
							 
						 
						
							
							
								
								If a symbol is used as tls, mark it as tls even if not declare as so. Probably  
							
							... 
							
							
							
							fixes PR8659.
llvm-svn: 120076 
							
						 
						
							2010-11-24 02:19:40 +00:00  
				
					
						
							
							
								 
						
							
								8be14414f6 
								
							 
						 
						
							
							
								
								Added support for the Mach-O .symbol_resolver directive.  rdar://8673046  
							
							... 
							
							
							
							llvm-svn: 119816 
							
						 
						
							2010-11-19 18:39:33 +00:00  
				
					
						
							
							
								 
						
							
								b58867ccba 
								
							 
						 
						
							
							
								
								Change some methods in MCDwarf.cpp to be able to handle an arbitrary  
							
							... 
							
							
							
							MCStreamer instead of just MCObjectStreamer. Address changes cannot
be as efficient as we have to use DW_LNE_set_addres, but at least
most of the logic is shared.
This will be used so that, with CodeGen still using EmitDwarfLocDirective,
llvm-gcc is able to produce debug_line sections without needing an
assembler that supports .loc.
llvm-svn: 119777 
							
						 
						
							2010-11-19 02:26:16 +00:00  
				
					
						
							
							
								 
						
							
								c653a895c8 
								
							 
						 
						
							
							
								
								Add .loc methods to the streamer.  
							
							... 
							
							
							
							Next: Add support for the !HasDotLocAndDotFile case to the MCAsmStreamer
and then switch codegen to use it.
llvm-svn: 119384 
							
						 
						
							2010-11-16 21:20:32 +00:00  
				
					
						
							
							
								 
						
							
								8c3039b67b 
								
							 
						 
						
							
							
								
								Change MCExpr::EvaluateAsRelocatableImpl of variables to return the original  
							
							... 
							
							
							
							variable if recursing fails to simplify it.
Factor AliasedSymbol to be a method of MCSymbol.
Update MCAssembler::EvaluateFixup to match the change in
EvaluateAsRelocatableImpl.
Remove the WeakRefExpr hack, as the object writer now sees the weakref with
no extra effort needed.
Nothing else is using MCTargetExpr, but keep it for now.
Now that the ELF writer sees relocations with aliases, handle
    .weak    foo2
foo2:
    .weak    bar2
    .set    bar2,foo2
    .quad    bar2
the same way gas does and produce a relocation with bar2.
llvm-svn: 119152 
							
						 
						
							2010-11-15 16:33:49 +00:00  
				
					
						
							
							
								 
						
							
								a7d0bed336 
								
							 
						 
						
							
							
								
								Fix another case of a .comm directive without a corresponding .type  
							
							... 
							
							
							
							directive.
llvm-svn: 119073 
							
						 
						
							2010-11-14 21:11:16 +00:00  
				
					
						
							
							
								 
						
							
								b05ef7377a 
								
							 
						 
						
							
							
								
								Fix the type of a symbol created with .comm and no corresponding .type.  
							
							... 
							
							
							
							llvm-svn: 119060 
							
						 
						
							2010-11-14 19:40:55 +00:00  
				
					
						
							
							
								 
						
							
								7d0ba3464e 
								
							 
						 
						
							
							
								
								Handle a peculiar comdat case: Creating a section with an undefined  
							
							... 
							
							
							
							signature symbol causes a local symbol to be created unless there is
some other use of the symbol.
llvm-svn: 119026 
							
						 
						
							2010-11-14 04:17:37 +00:00  
				
					
						
							
							
								 
						
							
								eba9022652 
								
							 
						 
						
							
							
								
								Fix warning.  
							
							... 
							
							
							
							llvm-svn: 119021 
							
						 
						
							2010-11-14 01:34:31 +00:00  
				
					
						
							
							
								 
						
							
								84d031870c 
								
							 
						 
						
							
							
								
								Mark labels declared in tls sections as STT_TLS. This matches the behavior of  
							
							... 
							
							
							
							gas.
llvm-svn: 118818 
							
						 
						
							2010-11-11 19:04:55 +00:00  
				
					
						
							
							
								 
						
							
								cbdf7efe1c 
								
							 
						 
						
							
							
								
								Add '.code 32' assembler directive to MC streamers.  
							
							... 
							
							
							
							llvm-svn: 118309 
							
						 
						
							2010-11-05 22:40:09 +00:00  
				
					
						
							
							
								 
						
							
								5a2c68d308 
								
							 
						 
						
							
							
								
								MC'ize the '.code 16' and '.thumb_func' ARM directives.  
							
							... 
							
							
							
							llvm-svn: 118301 
							
						 
						
							2010-11-05 22:08:08 +00:00  
				
					
						
							
							
								 
						
							
								80bb80f5fc 
								
							 
						 
						
							
							
								
								Put class into an anonymous namespace.  
							
							... 
							
							
							
							llvm-svn: 118294 
							
						 
						
							2010-11-05 19:56:38 +00:00  
				
					
						
							
							
								 
						
							
								13ddd6d410 
								
							 
						 
						
							
							
								
								Write the line info to .debug_line.  
							
							... 
							
							
							
							llvm-svn: 117930 
							
						 
						
							2010-11-01 17:07:14 +00:00  
				
					
						
							
							
								 
						
							
								72b5488680 
								
							 
						 
						
							
							
								
								Move EmitInstruction to MCObjectStreamer so that ELF and MachO can share it.  
							
							... 
							
							
							
							llvm-svn: 117925 
							
						 
						
							2010-11-01 16:27:31 +00:00  
				
					
						
							
							
								 
						
							
								1614597873 
								
							 
						 
						
							
							
								
								Implement .weakref.  
							
							... 
							
							
							
							llvm-svn: 117911 
							
						 
						
							2010-11-01 14:28:48 +00:00  
				
					
						
							
							
								 
						
							
								83b2a3337f 
								
							 
						 
						
							
							
								
								Make sure weak symbols are listed after the local ones.  
							
							... 
							
							
							
							llvm-svn: 115795 
							
						 
						
							2010-10-06 16:47:31 +00:00  
				
					
						
							
							
								 
						
							
								bce26a1ee0 
								
							 
						 
						
							
							
								
								On ELF we need to know which symbols are used in relocations to decide if  
							
							... 
							
							
							
							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 
							
						 
						
							2010-10-05 15:11:03 +00:00  
				
					
						
							
							
								 
						
							
								645f6c2bef 
								
							 
						 
						
							
							
								
								Tiny patch for proof-of-concept cleanup of ARMAsmPrinter::EmitStartOfAsmFile()  
							
							... 
							
							
							
							Small test for sanity check of resulting ARM .s file.
Tested against -r115129.
llvm-svn: 115133 
							
						 
						
							2010-09-30 02:45:56 +00:00  
				
					
						
							
							
								 
						
							
								53f0bf194a 
								
							 
						 
						
							
							
								
								Move "local commons" to the end of .bss to match the gnu as behavior.  
							
							... 
							
							
							
							llvm-svn: 115037 
							
						 
						
							2010-09-29 14:52:01 +00:00  
				
					
						
							
							
								 
						
							
								75d65b9a03 
								
							 
						 
						
							
							
								
								Move ELF to HasReliableSymbolDifference=true. Also take the opportunity to put  
							
							... 
							
							
							
							symbols defined in merge sections in independent atoms.
llvm-svn: 114786 
							
						 
						
							2010-09-25 05:42:19 +00:00  
				
					
						
							
							
								 
						
							
								dee12d8110 
								
							 
						 
						
							
							
								
								Avoid some Mach-O specific alignment being done on ELF.  
							
							... 
							
							
							
							llvm-svn: 114594 
							
						 
						
							2010-09-22 22:27:05 +00:00  
				
					
						
							
							
								 
						
							
								9bac6cb544 
								
							 
						 
						
							
							
								
								Correctly align bss.  
							
							... 
							
							
							
							llvm-svn: 114556 
							
						 
						
							2010-09-22 17:43:04 +00:00  
				
					
						
							
							
								 
						
							
								f0591c1642 
								
							 
						 
						
							
							
								
								Implement support for .local and its "interesting" interactions with .comm.  
							
							... 
							
							
							
							llvm-svn: 114382 
							
						 
						
							2010-09-21 00:24:38 +00:00  
				
					
						
							
							
								 
						
							
								f667d929ce 
								
							 
						 
						
							
							
								
								Add a InitSections method to the streamer interface.  
							
							... 
							
							
							
							The ELF implementation now creates text, data and bss to match the gnu as
behavior.
The text streamer still has the old MachO specific behavior since
the testsuite checks that it will error when a directive is given
before a setting the current section for example.
A nice benefit is that -n is not required anymore when producing
ELF files.
llvm-svn: 114027 
							
						 
						
							2010-09-15 21:48:40 +00:00  
				
					
						
							
							
								 
						
							
								9fd2ed9243 
								
							 
						 
						
							
							
								
								Factoring and potential bug fix. The elf "flags" cannot be used as masks.  
							
							... 
							
							
							
							For example, setting STT_OBJECT (1) and STT_FUNC (2), should not produce
a STT_SECTION (3).
llvm-svn: 113759 
							
						 
						
							2010-09-13 17:39:45 +00:00  
				
					
						
							
							
								 
						
							
								2ef1a589c5 
								
							 
						 
						
							
							
								
								ELF_STB_Local is 0 so setting and checking it must be done specially  
							
							... 
							
							
							
							llvm-svn: 113375 
							
						 
						
							2010-09-08 18:08:40 +00:00  
				
					
						
							
							
								 
						
							
								5af02b0360 
								
							 
						 
						
							
							
								
								Allow MCSA_WeakRef in ELF. Patch by Roman Divacky.  
							
							... 
							
							
							
							llvm-svn: 112834 
							
						 
						
							2010-09-02 17:18:32 +00:00  
				
					
						
							
							
								 
						
							
								6ebea89316 
								
							 
						 
						
							
							
								
								Mark all common symbols external. This is not exactly correct but it lets apps  
							
							... 
							
							
							
							link for now and can be adjusted later. Patch by Roman Divacky.
llvm-svn: 112471 
							
						 
						
							2010-08-30 11:56:55 +00:00  
				
					
						
							
							
								 
						
							
								1f6012479f 
								
							 
						 
						
							
							
								
								MCELF: Port EmitInstruction changes from MachO streamer. Patch by Roman Divacky.  
							
							... 
							
							
							
							llvm-svn: 112260 
							
						 
						
							2010-08-27 10:40:51 +00:00  
				
					
						
							
							
								 
						
							
								b20b5249d2 
								
							 
						 
						
							
							
								
								Fix a few warnings in and detabify MCELFStreamer and ELFObjectWriter.  
							
							... 
							
							
							
							llvm-svn: 111175 
							
						 
						
							2010-08-16 19:15:06 +00:00  
				
					
						
							
							
								 
						
							
								6c1ad4835e 
								
							 
						 
						
							
							
								
								Add ELF ObjectWriter and Streamer support.  
							
							... 
							
							
							
							I forgot to add these files in commit 111172.
llvm-svn: 111174 
							
						 
						
							2010-08-16 18:57:57 +00:00