ba321cb120 
								
							 
						 
						
							
							
								
								Trailing whitespace.  
							
							... 
							
							
							
							llvm-svn: 118831 
							
						 
						
							2010-11-11 20:16:23 +00:00  
				
					
						
							
							
								 
						
							
								46c2acbcb4 
								
							 
						 
						
							
							
								
								Allow targets to specify the MachO CPUType/CPUSubtype information.  
							
							... 
							
							
							
							llvm-svn: 118288 
							
						 
						
							2010-11-05 18:48:58 +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  
				
					
						
							
							
								 
						
							
								a8d176866d 
								
							 
						 
						
							
							
								
								This adds a Darwin x86_64 relocation encoding for a subtraction expression  
							
							... 
							
							
							
							where both symbols are "local", that is non-external symbols, and there is
no "base" for the symbols used in the expression, that is the section has
no non-temporary symbols.  This case looks like this:
% cat local_reloc_A-B.s
	.long 0
LB:	.long 1
	.long LA - LB - 4
	.long 2
LA:	.long 3
which llvm-mc will not encode without this patch, generates a "unsupported
local relocations in difference" error, but the Darwin assembler will
encode with relocation entries like this:
% otool -rv a.out l.out 
a.out:
Relocation information (__TEXT,__text) 2 entries
address  pcrel length extern type    scattered symbolnum/value
00000008 False long   False  SUB     False     1 (__TEXT,__text)
00000008 False long   False  UNSIGND False     1 (__TEXT,__text)
which is very similar to what is encoded when the symbols don't have the
leading 'L' and they are not temporary symbols.  Which llvm-mc and the
Darwin assembler will encoded like this:
Relocation information (__TEXT,__text) 2 entries
address  pcrel length extern type    scattered symbolnum/value
00000008 False long   True   SUB     False     B
00000008 False long   True   UNSIGND False     A
This is the missing relocation encoding needed to allow the Mach-O x86
Dwarf file and line table to be emitted.  So this patch also removes the
TODO from the if() statement in MCMachOStreamer::Finish() that didn't 
call MCDwarfFileTable::Emit() for 64-bit targets.
llvm-svn: 115389 
							
						 
						
							2010-10-02 00:13:41 +00:00  
				
					
						
							
							
								 
						
							
								70d6e0e0ff 
								
							 
						 
						
							
							
								
								Correctly produce R_X86_64_32 or R_X86_64_32S.  
							
							... 
							
							
							
							With this patch in
movq    $foo, foo(%rip)
foo:
.long   foo
We produce a R_X86_64_32S for the first relocation and R_X86_64_32 for the
second one.
llvm-svn: 115134 
							
						 
						
							2010-09-30 03:11:42 +00:00  
				
					
						
							
							
								 
						
							
								2ebaee9c75 
								
							 
						 
						
							
							
								
								Make it possible for the MCObjectWriter to decide if a given fixup is fully  
							
							... 
							
							
							
							resolved or not. Different object files have different restrictions and
different native assemblers have different idiosyncrasies we want to emulate
for now.
Move the existing MachO logic to the new place and implement an ELF one that
gets fixups to globals right.
llvm-svn: 115131 
							
						 
						
							2010-09-30 02:22:20 +00:00  
				
					
						
							
							
								 
						
							
								cceded493f 
								
							 
						 
						
							
							
								
								Remove unused argument.  
							
							... 
							
							
							
							llvm-svn: 114852 
							
						 
						
							2010-09-27 18:13:03 +00:00  
				
					
						
							
							
								 
						
							
								35a7a0ee2e 
								
							 
						 
						
							
							
								
								MC/Mach-O/i386: Fix a crash in relocation handling.  
							
							... 
							
							
							
							llvm-svn: 114176 
							
						 
						
							2010-09-17 15:21:50 +00:00  
				
					
						
							
							
								 
						
							
								1218ed824d 
								
							 
						 
						
							
							
								
								silence a vc2010 warning: " result of 32-bit shift implicitly converted to  
							
							... 
							
							
							
							64 bits (was 64-bit shift intended?)", pointed out by 'nobled' on llvmdev
llvm-svn: 111148 
							
						 
						
							2010-08-16 16:35:20 +00:00  
				
					
						
							
							
								 
						
							
								18bf25f189 
								
							 
						 
						
							
							
								
								Revert "MC/MachO: Fix possible null pointer dereference."  
							
							... 
							
							
							
							This reverts commit 110575.
Target.isAbsolute() is true if SD would be null.
llvm-svn: 110683 
							
						 
						
							2010-08-10 16:00:49 +00:00  
				
					
						
							
							
								 
						
							
								4a5167c836 
								
							 
						 
						
							
							
								
								MC/MachO: Fix possible null pointer dereference.  
							
							... 
							
							
							
							Discovered by Microsoft Visual Studio 2010 Code Analysis.
llvm-svn: 110575 
							
						 
						
							2010-08-09 15:28:05 +00:00  
				
					
						
							
							
								 
						
							
								05ea2a4791 
								
							 
						 
						
							
							
								
								finish up support for callw: PR7195  
							
							... 
							
							
							
							llvm-svn: 107826 
							
						 
						
							2010-07-07 22:35:13 +00:00  
				
					
						
							
							
								 
						
							
								1245e4c07d 
								
							 
						 
						
							
							
								
								The variable "Value" is carefully set to Layout.getSymbolAddress,  
							
							... 
							
							
							
							but then not actually used - maybe a bug?  Remove the variable.
llvm-svn: 107137 
							
						 
						
							2010-06-29 13:26:33 +00:00  
				
					
						
							
							
								 
						
							
								7f85520644 
								
							 
						 
						
							
							
								
								Get the addend correct for i386 pic.  
							
							... 
							
							
							
							Thanks Daniel!
llvm-svn: 106608 
							
						 
						
							2010-06-22 23:51:47 +00:00  
				
					
						
							
							
								 
						
							
								93f16372f9 
								
							 
						 
						
							
							
								
								Update comment.  
							
							... 
							
							
							
							llvm-svn: 106191 
							
						 
						
							2010-06-17 00:49:46 +00:00  
				
					
						
							
							
								 
						
							
								74892d4f1f 
								
							 
						 
						
							
							
								
								In progress on 32-bit addends.  
							
							... 
							
							
							
							llvm-svn: 106154 
							
						 
						
							2010-06-16 21:32:38 +00:00  
				
					
						
							
							
								 
						
							
								aa627c39e4 
								
							 
						 
						
							
							
								
								MC: Simplify MCAssembler::isSymbolLinkerVisible to only take an MCSymbol.  
							
							... 
							
							
							
							llvm-svn: 106142 
							
						 
						
							2010-06-16 20:04:29 +00:00  
				
					
						
							
							
								 
						
							
								2092dc2acd 
								
							 
						 
						
							
							
								
								Fix indentation.  
							
							... 
							
							
							
							llvm-svn: 106072 
							
						 
						
							2010-06-16 00:26:36 +00:00  
				
					
						
							
							
								 
						
							
								a86c2bdd2c 
								
							 
						 
						
							
							
								
								Some more work on mach-o TLV relocations.  
							
							... 
							
							
							
							llvm-svn: 106062 
							
						 
						
							2010-06-15 22:59:05 +00:00  
				
					
						
							
							
								 
						
							
								eaddfac539 
								
							 
						 
						
							
							
								
								Rearrange conditionals so we don't get caught with the correct type as wrong.  
							
							... 
							
							
							
							llvm-svn: 104793 
							
						 
						
							2010-05-27 00:52:31 +00:00  
				
					
						
							
							
								 
						
							
								b34440a6a8 
								
							 
						 
						
							
							
								
								MC: Eliminate MCAsmFixup, replace with MCFixup.  
							
							... 
							
							
							
							llvm-svn: 104699 
							
						 
						
							2010-05-26 15:18:56 +00:00  
				
					
						
							
							
								 
						
							
								353a91ff76 
								
							 
						 
						
							
							
								
								MC: Use accessors for access to MCAsmFixup.  
							
							... 
							
							
							
							llvm-svn: 104697 
							
						 
						
							2010-05-26 15:18:31 +00:00  
				
					
						
							
							
								 
						
							
								e7b64dcc1e 
								
							 
						 
						
							
							
								
								Start adding mach-o tls reloc support.  
							
							... 
							
							
							
							llvm-svn: 104651 
							
						 
						
							2010-05-26 00:02:12 +00:00  
				
					
						
							
							
								 
						
							
								7c3e230cd1 
								
							 
						 
						
							
							
								
								Reduce string trashing.  
							
							... 
							
							
							
							llvm-svn: 104223 
							
						 
						
							2010-05-20 14:14:22 +00:00  
				
					
						
							
							
								 
						
							
								d5563f420a 
								
							 
						 
						
							
							
								
								MC/Mach-O: Implement support for setting indirect symbol table offset in section header.  
							
							... 
							
							
							
							Also, create symbol data for LHS of assignment, to match 'as' symbol ordering better.
llvm-svn: 104033 
							
						 
						
							2010-05-18 17:28:24 +00:00  
				
					
						
							
							
								 
						
							
								f16c12d7a1 
								
							 
						 
						
							
							
								
								MC/Mach-O: Remove some FIXMEs.  
							
							... 
							
							
							
							llvm-svn: 104032 
							
						 
						
							2010-05-18 17:28:20 +00:00  
				
					
						
							
							
								 
						
							
								2493ddfe42 
								
							 
						 
						
							
							
								
								MC/Mach-O/x86_64: Darwin's special "signed_N" relocation types should only be  
							
							... 
							
							
							
							used to replace a normal relocation, not a reference to a GOT entry.
llvm-svn: 103789 
							
						 
						
							2010-05-14 18:53:40 +00:00  
				
					
						
							
							
								 
						
							
								53ce0e12d8 
								
							 
						 
						
							
							
								
								MC/Mach-O/x86_64: Fix PCrel adjustment for x86_64, which was using the fixup  
							
							... 
							
							
							
							offset instead of the fixup address as intended.
llvm-svn: 103527 
							
						 
						
							2010-05-11 23:53:11 +00:00  
				
					
						
							
							
								 
						
							
								7c6f0e3827 
								
							 
						 
						
							
							
								
								MC/Mach-O: As Kevin pointed out, 'Address' is really an offset -- rename to clarify.  
							
							... 
							
							
							
							llvm-svn: 103526 
							
						 
						
							2010-05-11 23:53:07 +00:00  
				
					
						
							
							
								 
						
							
								795baa1972 
								
							 
						 
						
							
							
								
								MC/Mach-O: Fix a crash on invalid.  
							
							... 
							
							
							
							llvm-svn: 103525 
							
						 
						
							2010-05-11 23:53:05 +00:00  
				
					
						
							
							
								 
						
							
								75778984f9 
								
							 
						 
						
							
							
								
								MC/Mach-O: Fix another mismatch with .weak_definition, we shouldn't use a  
							
							... 
							
							
							
							scattered relocation entry with a .weak_definition.
llvm-svn: 103443 
							
						 
						
							2010-05-10 23:15:20 +00:00  
				
					
						
							
							
								 
						
							
								7de3106a89 
								
							 
						 
						
							
							
								
								MC/Mach-O: Factor out doesSymbolRequireExternRelocation.  
							
							... 
							
							
							
							llvm-svn: 103442 
							
						 
						
							2010-05-10 23:15:13 +00:00  
				
					
						
							
							
								 
						
							
								51bed9c870 
								
							 
						 
						
							
							
								
								Fix i386 relocations to Weak Definitions.  The relocation entries should be  
							
							... 
							
							
							
							external and the item to be relocated should not have the address of the
symbol added in.
llvm-svn: 103302 
							
						 
						
							2010-05-07 21:44:23 +00:00  
				
					
						
							
							
								 
						
							
								f3a53baf00 
								
							 
						 
						
							
							
								
								MC/Mach-O: Mark absolute variable's appropriately, and add Mach-O support for  
							
							... 
							
							
							
							writing them.
 - <rdar://problem/7885351> integrated assembler broken for i386 objc code
llvm-svn: 103112 
							
						 
						
							2010-05-05 19:01:05 +00:00  
				
					
						
							
							
								 
						
							
								027fa5f31c 
								
							 
						 
						
							
							
								
								MC/Mach-O/x86_64: Relocations in debug sections should use local relocations  
							
							... 
							
							
							
							when possible.
 - <rdar://problem/7934873>
llvm-svn: 103092 
							
						 
						
							2010-05-05 17:22:39 +00:00  
				
					
						
							
							
								 
						
							
								53dd088b58 
								
							 
						 
						
							
							
								
								Various MSVC warning fixes about truncated 64 bit shifts and const pointers passed to free.  
							
							... 
							
							
							
							llvm-svn: 100767 
							
						 
						
							2010-04-08 15:25:57 +00:00  
				
					
						
							
							
								 
						
							
								2104b8d36e 
								
							 
						 
						
							
							
								
								rename llvm::llvm_report_error -> llvm::report_fatal_error  
							
							... 
							
							
							
							llvm-svn: 100709 
							
						 
						
							2010-04-07 22:58:41 +00:00  
				
					
						
							
							
								 
						
							
								c95156262d 
								
							 
						 
						
							
							
								
								MC/Mach-O/x86_64: Support @GOTPCREL on symbols, even for non-PCrel relocations!  
							
							... 
							
							
							
							llvm-svn: 99853 
							
						 
						
							2010-03-29 23:56:40 +00:00  
				
					
						
							
							
								 
						
							
								951459740c 
								
							 
						 
						
							
							
								
								MC/Mach-O: Switch to MCSectionData::getOrdinal.  
							
							... 
							
							
							
							llvm-svn: 99504 
							
						 
						
							2010-03-25 08:08:54 +00:00  
				
					
						
							
							
								 
						
							
								eaa792f0d9 
								
							 
						 
						
							
							
								
								Fix -Asserts warning.  
							
							... 
							
							
							
							llvm-svn: 99499 
							
						 
						
							2010-03-25 07:10:05 +00:00  
				
					
						
							
							
								 
						
							
								5b07334c0d 
								
							 
						 
						
							
							
								
								MC: Route access to SectionData offset and file size through MCAsmLayout.  
							
							... 
							
							
							
							llvm-svn: 99474 
							
						 
						
							2010-03-25 02:00:07 +00:00  
				
					
						
							
							
								 
						
							
								2522dd1c49 
								
							 
						 
						
							
							
								
								MC: Route access to Fragment offset and effective size through MCAsmLayout.  
							
							... 
							
							
							
							llvm-svn: 99473 
							
						 
						
							2010-03-25 02:00:02 +00:00  
				
					
						
							
							
								 
						
							
								7c969558d9 
								
							 
						 
						
							
							
								
								MC: Direct all {fragment,section,symbol} address access through the MCAsmLayout object.  
							
							... 
							
							
							
							llvm-svn: 99380 
							
						 
						
							2010-03-24 03:43:40 +00:00  
				
					
						
							
							
								 
						
							
								a75f01a905 
								
							 
						 
						
							
							
								
								Add a FIXME.  
							
							... 
							
							
							
							llvm-svn: 99228 
							
						 
						
							2010-03-22 23:16:43 +00:00  
				
					
						
							
							
								 
						
							
								a0ab4bf989 
								
							 
						 
						
							
							
								
								MC: Change MCObjectWriter::RecordRelocation to take an MCFragment (instead of a MCDataFragment). Object files should only need the generic MCFragment features.  
							
							... 
							
							
							
							llvm-svn: 99205 
							
						 
						
							2010-03-22 20:35:50 +00:00  
				
					
						
							
							
								 
						
							
								5ea5fab22b 
								
							 
						 
						
							
							
								
								Better fix for r98994, MachObjectWriterImpl wasn't intended to be virtual.  
							
							... 
							
							
							
							llvm-svn: 99031 
							
						 
						
							2010-03-20 01:58:40 +00:00  
				
					
						
							
							
								 
						
							
								07b4f8cd4b 
								
							 
						 
						
							
							
								
								Fix -Wnon-virtual-dtor warning.  
							
							... 
							
							
							
							llvm-svn: 98994 
							
						 
						
							2010-03-19 21:26:46 +00:00  
				
					
						
							
							
								 
						
							
								1a81ad3559 
								
							 
						 
						
							
							
								
								MC/Mach-O/x86_64: Add relocation support.  
							
							... 
							
							
							
							- This is "extraordinarily" Darwin 'as' compatible. See the litany of FIXMEs littered about for more information.
 - There are a few cases which seem to clearly be 'as' bugs which I have left unsupported, and there is one cases where we diverge but should fix if it blocks diffing .o files (Darwin 'as' ends up widening a jump unnecessarily).
 - 403.gcc build, runs, and diffs equivalently to the 'as' built version now (using llvm-mc). However, it builds so slowly that I wouldn't recommend trying it quite yet. :)
llvm-svn: 98974 
							
						 
						
							2010-03-19 18:07:55 +00:00  
				
					
						
							
							
								 
						
							
								79e0e5a631 
								
							 
						 
						
							
							
								
								MC/Mach-O: Move to MachObjectWriter.{h,cpp}.  
							
							... 
							
							
							
							llvm-svn: 98952 
							
						 
						
							2010-03-19 10:43:15 +00:00