Rafael Espindola 
							
						 
					 
					
						
						
							
						
						d88cac0a6e 
					 
					
						
						
							
							No relocation produces a SLEB or ULEB, make sure they are handled in MC.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130181  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-04-26 02:17:58 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						e8cfbd843d 
					 
					
						
						
							
							Remove unused argument.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129955  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-04-21 23:39:26 +00:00 
						 
				 
			
				
					
						
							
							
								Eli Friedman 
							
						 
					 
					
						
						
							
						
						50ebe53353 
					 
					
						
						
							
							malloc elimination: it's a bad idea to use raw_svector_ostream on a  
						
						... 
						
						
						
						small heap-allocated SmallString because it unconditionally forces a malloc.
(Revised version of r129688, with the necessary flush() call.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129716  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-04-18 20:54:46 +00:00 
						 
				 
			
				
					
						
							
							
								Eli Friedman 
							
						 
					 
					
						
						
							
						
						205132e904 
					 
					
						
						
							
							Revert r129688; it's breaking buildbots.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129689  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-04-18 05:54:54 +00:00 
						 
				 
			
				
					
						
							
							
								Eli Friedman 
							
						 
					 
					
						
						
							
						
						24b9654f12 
					 
					
						
						
							
							More malloc elimination: it's a bad idea to use raw_svector_ostream on a  
						
						... 
						
						
						
						small heap-allocated SmallString because it unconditionally forces a malloc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129688  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-04-18 05:38:58 +00:00 
						 
				 
			
				
					
						
							
							
								Jan Sjödin 
							
						 
					 
					
						
						
							
						
						01dff96461 
					 
					
						
						
							
							Add constructors to MCElfStreamer and MCObjectStreamer to take an extra MCAssembler * argument.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127343  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-03-09 17:33:05 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						f7ad048f1e 
					 
					
						
						
							
							Add some limited support for labels in org directives. Hopefully enough to fix  
						
						... 
						
						
						
						PR9245.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126091  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-02-20 20:20:07 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						7768a9dce1 
					 
					
						
						
							
							Add support for pushsection and popsection. Patch by Joerg Sonnenberger.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125629  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-02-16 01:08:29 +00:00 
						 
				 
			
				
					
						
							
							
								Evan Cheng 
							
						 
					 
					
						
						
							
						
						7597212abc 
					 
					
						
						
							
							Model :upper16: and :lower16: as ARM specific MCTargetExpr. This is a step  
						
						... 
						
						
						
						in the right direction. It eliminated some hacks and will unblock codegen
work. But it's far from being done. It doesn't reject illegal expressions,
e.g. (FOO - :lower16:BAR). It also doesn't work in Thumb2 mode at all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123369  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-01-13 07:58:56 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						245a1e2041 
					 
					
						
						
							
							Relax address updates in the eh_frame section.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122591  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-28 05:39:27 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						835439a397 
					 
					
						
						
							
							Assert that the AddrDelta expression is really constant and wrap it in a set  
						
						... 
						
						
						
						if we have a lame assembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122446  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-22 22:04:28 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						d076482ab7 
					 
					
						
						
							
							Revert 122011, 122012, 122013, 122023 adding back an important optimization.  
						
						... 
						
						
						
						I added a note, but suggestions on how to add a test are really welcome.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122138  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-18 03:57:21 +00:00 
						 
				 
			
				
					
						
							
							
								Daniel Dunbar 
							
						 
					 
					
						
						
							
						
						feb7ba3d9a 
					 
					
						
						
							
							MC/Assembler: Make the MCObjectWriter available through the lifetime of the  
						
						... 
						
						
						
						assembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122031  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-17 02:45:41 +00:00 
						 
				 
			
				
					
						
							
							
								Daniel Dunbar 
							
						 
					 
					
						
						
							
						
						2d8e3e741f 
					 
					
						
						
							
							MC: Remove another dead MCAssembler argument, and update clients.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122013  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-17 01:07:35 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						89b9372605 
					 
					
						
						
							
							Fixed version of 121434 with no new memory leaks.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121471  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-10 07:39:47 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						f7fd4aa261 
					 
					
						
						
							
							Revert my previous patch to make the valgrind bots happy.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121461  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-10 04:01:09 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						1c952b9cc9 
					 
					
						
						
							
							Initial support for the cfi directives. This is just enough to get  
						
						... 
						
						
						
						f:
        .cfi_startproc
        nop
        .cfi_endproc
assembled (on ELF).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121434  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-09 23:48:29 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						85f2ecc697 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121076  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-07 00:27:36 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						22373b230a 
					 
					
						
						
							
							Use references to simplify the code a bit.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121050  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-06 22:30:54 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						5d4918dbd1 
					 
					
						
						
							
							There are two reasons why we might want to use  
						
						... 
						
						
						
						foo = a - b
.long foo
instead of just
.long a - b
First, on darwin9 64 bits the assembler produces the wrong result. Second,
if "a" is the end of the section all darwin assemblers (9, 10 and mc) will not
consider a - b to be a constant but will if the dummy foo is created.
Split how we handle these cases. The first one is something MC should take care
of. The second one has to be handled by the caller.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120889  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-04 03:21:47 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						2df042cb32 
					 
					
						
						
							
							Make EmitIntValue more efficient and more like what we do for leb128. The  
						
						... 
						
						
						
						difference is much smaller (about 0.3s) but significant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120787  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-03 02:54:21 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						660b5fc4d0 
					 
					
						
						
							
							Do with uleb the same trick we now do with dwarf line/address advances. This  
						
						... 
						
						
						
						avoids creating leb128 fragments and speeds up the test in PR8711 to 33s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120774  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-03 01:19:49 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						32a006e606 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120767  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-03 00:55:40 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						ee4854faf3 
					 
					
						
						
							
							Use set directive for StartMinusEndExpr.  
						
						... 
						
						
						
						This is a fix for llvm-gcc-i386-darwin9 buildbot failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120742  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-02 21:32:30 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						e23930543c 
					 
					
						
						
							
							Move EmitValueToOffset to the ObjectStreamer.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120691  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-02 05:59:38 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						dedb045c32 
					 
					
						
						
							
							Add EmitInstToFragment to the generic object streamer.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120690  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-02 05:44:06 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						6f95023a7f 
					 
					
						
						
							
							Move EmitValue to MCObjectStreamer.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120269  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-28 23:08:47 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						ea4afa91eb 
					 
					
						
						
							
							Fixed verson of r120245.  
						
						... 
						
						
						
						Factor some duplicated code into MCObjectStreamer::EmitLabel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120248  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-28 17:18:55 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						ba210243ef 
					 
					
						
						
							
							Revert previous patch while I debug the darwin bootstrap failure.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120246  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-28 16:22:59 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						f90a2de72c 
					 
					
						
						
							
							Factor some duplicated code into MCObjectStreamer::EmitLabel.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120245  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-28 15:54:36 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						3ff57094a7 
					 
					
						
						
							
							Add support for expressions in .sleb/.uleb directives.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118023  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-02 17:22:24 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						f89671d994 
					 
					
						
						
							
							Move EmitInstruction to MCObjectStreamer so that ELF and MachO can share it.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117925  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-01 16:27:31 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						484291c273 
					 
					
						
						
							
							Implement .weakref.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117911  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-01 14:28:48 +00:00 
						 
				 
			
				
					
						
							
							
								Rafael Espindola 
							
						 
					 
					
						
						
							
						
						59ff3c9134 
					 
					
						
						
							
							Avoid some Mach-O specific alignment being done on ELF.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114594  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-22 22:27:05 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						1674b0b0e4 
					 
					
						
						
							
							Add AsmParser support for the ELF .previous directive. Patch by Roman Divacky.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112849  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-09-02 18:53:37 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						1abcd06856 
					 
					
						
						
							
							Plug the remaining MC leaks by giving MCObjectStreamer/MCAsmStreamer ownership of the TargetAsmBackend and the MCCodeEmitter.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109767  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-29 17:48:06 +00:00 
						 
				 
			
				
					
						
							
							
								Michael J. Spencer 
							
						 
					 
					
						
						
							
						
						8067adc271 
					 
					
						
						
							
							MC: Add WinCOFFStreamer implementation and merge common code from MachO  
						
						... 
						
						
						
						into MCObjectStreamer.
Origonal Windows COFF implementation by Nathan Jedffords.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108678  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-07-19 06:13:10 +00:00 
						 
				 
			
				
					
						
							
							
								Daniel Dunbar 
							
						 
					 
					
						
						
							
						
						83b467178a 
					 
					
						
						
							
							MC: Lift SwitchSection() and Finish() into MCObjectStreamer.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106141  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-16 20:04:25 +00:00 
						 
				 
			
				
					
						
							
							
								Daniel Dunbar 
							
						 
					 
					
						
						
							
						
						8dc68ab931 
					 
					
						
						
							
							MC: Factor out an MCObjectStreamer class, which will be shared by the concrete  
						
						... 
						
						
						
						object file format writers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106140  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-16 20:04:22 +00:00