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  
				
					
						
							
							
								 
						
							
								460be996ce 
								
							 
						 
						
							
							
								
								Formatting and typo.  
							
							... 
							
							
							
							llvm-svn: 139325 
							
						 
						
							2011-09-08 22:17:40 +00:00  
				
					
						
							
							
								 
						
							
								7b46bb8e32 
								
							 
						 
						
							
							
								
								Fix a Darwin x86_64 special case of a jmp to a temporary symbol from an atom  
							
							... 
							
							
							
							without a base symbol that must not have a relocation entry.
llvm-svn: 139316 
							
						 
						
							2011-09-08 20:53:44 +00:00  
				
					
						
							
							
								 
						
							
								91ea511436 
								
							 
						 
						
							
							
								
								MachOWriter: Don't crash on fixups with arithmetic, emit a relocation instead. This matches what as does.  
							
							... 
							
							
							
							llvm-svn: 137414 
							
						 
						
							2011-08-12 01:51:29 +00:00  
				
					
						
							
							
								 
						
							
								a317160348 
								
							 
						 
						
							
							
								
								Don't truncate MachO addresses.  
							
							... 
							
							
							
							Assigned symbol addresses get truncated to 32-bits, even on 64-bit platforms.
That's obviously bogus.
For example,
 .globl _foo
 .equ _foo, 0x987654321ULL
rdar://9922863
llvm-svn: 137158 
							
						 
						
							2011-08-09 22:12:37 +00:00  
				
					
						
							
							
								 
						
							
								5928e69d20 
								
							 
						 
						
							
							
								
								Rename TargetAsmBackend to MCAsmBackend; rename createAsmBackend to createMCAsmBackend.  
							
							... 
							
							
							
							llvm-svn: 136010 
							
						 
						
							2011-07-25 23:24:55 +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  
				
					
						
							
							
								 
						
							
								28fcafb502 
								
							 
						 
						
							
							
								
								Refactor MachO relocation generaration into the Target directories.  
							
							... 
							
							
							
							Move the target-specific RecordRelocation logic out of the generic MC
MachObjectWriter and into the target-specific object writers. This allows
nuking quite a bit of target knowledge from the supposedly target-independent
bits in lib/MC.
llvm-svn: 133844 
							
						 
						
							2011-06-24 23:44:37 +00:00  
				
					
						
							
							
								 
						
							
								018970216c 
								
							 
						 
						
							
							
								
								tidy up whitespace.  
							
							... 
							
							
							
							llvm-svn: 133815 
							
						 
						
							2011-06-24 19:43:27 +00:00  
				
					
						
							
							
								 
						
							
								3c9ede62f6 
								
							 
						 
						
							
							
								
								Fixup info for Thumb2 unconditional branch.  
							
							... 
							
							
							
							rdar://9667872
llvm-svn: 133808 
							
						 
						
							2011-06-24 18:48:32 +00:00  
				
					
						
							
							
								 
						
							
								7633256b9d 
								
							 
						 
						
							
							
								
								Tidy up.  
							
							... 
							
							
							
							llvm-svn: 133770 
							
						 
						
							2011-06-23 22:29:00 +00:00  
				
					
						
							
							
								 
						
							
								21162219b4 
								
							 
						 
						
							
							
								
								80-column violations.  
							
							... 
							
							
							
							llvm-svn: 133668 
							
						 
						
							2011-06-23 00:09:43 +00:00  
				
					
						
							
							
								 
						
							
								eb872e0471 
								
							 
						 
						
							
							
								
								Move class methods out-of-line. This reduces the indentation, and is more in  
							
							... 
							
							
							
							line with LLVM's general coding style.
No functionality change.
llvm-svn: 133645 
							
						 
						
							2011-06-22 21:07:27 +00:00  
				
					
						
							
							
								 
						
							
								b200f93125 
								
							 
						 
						
							
							
								
								MC/Mach-O: Update getSymbolAddress() to support evaluation of variables.  
							
							... 
							
							
							
							llvm-svn: 130522 
							
						 
						
							2011-04-29 18:13:42 +00:00  
				
					
						
							
							
								 
						
							
								29ba55cfe4 
								
							 
						 
						
							
							
								
								MC/Mach-O: Allow emission of relocations for variables in some more cases.  
							
							... 
							
							
							
							llvm-svn: 130520 
							
						 
						
							2011-04-29 18:10:47 +00:00  
				
					
						
							
							
								 
						
							
								b9c2b6c50d 
								
							 
						 
						
							
							
								
								MC/Mach-O: Find section ordinal's by looking at the symbol, instead of assuming they are present in a fragment.  
							
							... 
							
							
							
							llvm-svn: 130519 
							
						 
						
							2011-04-29 18:07:43 +00:00  
				
					
						
							
							
								 
						
							
								0ab5e2cded 
								
							 
						 
						
							
							
								
								Fix a ton of comment typos found by codespell.  Patch by  
							
							... 
							
							
							
							Luis Felipe Strano Moraes!
llvm-svn: 129558 
							
						 
						
							2011-04-15 05:18:47 +00:00  
				
					
						
							
							
								 
						
							
								ab234158b8 
								
							 
						 
						
							
							
								
								Fix a bug introduced by my patch yesterday: BL is a 4-byte instructions like BLX, rather than a 2-byte instruction like B.  
							
							... 
							
							
							
							llvm-svn: 128169 
							
						 
						
							2011-03-23 21:19:56 +00:00  
				
					
						
							
							
								 
						
							
								6149a34102 
								
							 
						 
						
							
							
								
								RIT_ARM_ThumbBranch32Bit relocations are not used and should never be generated.  
							
							... 
							
							
							
							This fixes kimwitu++, bullet, and tramp3dv4 with the ARM integrated assembler.
Fixes <rdar://problem/9165738>.
llvm-svn: 128117 
							
						 
						
							2011-03-22 22:52:54 +00:00  
				
					
						
							
							
								 
						
							
								c2631d26c0 
								
							 
						 
						
							
							
								
								Silence compiler warning about case values not being in the enumerated type  
							
							... 
							
							
							
							MCFixupKind.  This is the same technique that is used elsewhere in MC.
llvm-svn: 127676 
							
						 
						
							2011-03-15 08:54:51 +00:00  
				
					
						
							
							
								 
						
							
								98a3c80a3e 
								
							 
						 
						
							
							
								
								Fixes warnings emitted by Visual Studio 2010 compiler.  
							
							... 
							
							
							
							Patch by Erik Olofsson!
llvm-svn: 126796 
							
						 
						
							2011-03-01 23:11:57 +00:00  
				
					
						
							
							
								 
						
							
								d2e2f56c36 
								
							 
						 
						
							
							
								
								Teach ARM/MC/ELF to handle R_ARM_JUMP24 relocation type for conditional jumps.  
							
							... 
							
							
							
							(yes, this is different from R_ARM_CALL)
- Adds a new method getARMBranchTargetOpValue() which handles the
  necessary distinction between the conditional and unconditional br/bl
  needed for ARM/ELF
At least for ARM mode, the needed fixup for conditional versus unconditional
br/bl is identical, but the ARM docs and existing ARM tools expect this
reloc type...
Added a few FIXME's for future naming fixups in ARMInstrInfo.td
llvm-svn: 124895 
							
						 
						
							2011-02-04 19:47:15 +00:00  
				
					
						
							
							
								 
						
							
								dfc85ed01e 
								
							 
						 
						
							
							
								
								Fix bogus assert condition noticed by Csaba Raduly.  
							
							... 
							
							
							
							llvm-svn: 124645 
							
						 
						
							2011-02-01 01:50:49 +00:00  
				
					
						
							
							
								 
						
							
								d4a5c05c97 
								
							 
						 
						
							
							
								
								Completed :lower16: / :upper16: support for movw / movt pairs on Darwin.  
							
							... 
							
							
							
							- Fixed :upper16: fix up routine. It should be shifting down the top 16 bits first.
- Added support for Thumb2 :lower16: and :upper16: fix up.
- Added :upper16: and :lower16: relocation support to mach-o object writer.
llvm-svn: 123424 
							
						 
						
							2011-01-14 02:38:49 +00:00  
				
					
						
							
							
								 
						
							
								a895c69431 
								
							 
						 
						
							
							
								
								MC/Mach-O/Thumb: Select appropriate relocation types for Thumb.  
							
							... 
							
							
							
							llvm-svn: 122583 
							
						 
						
							2010-12-27 14:49:49 +00:00  
				
					
						
							
							
								 
						
							
								0f8abeba1d 
								
							 
						 
						
							
							
								
								Merge IsFixupFullyResolved and IsSymbolRefDifferenceFullyResolved. We now  
							
							... 
							
							
							
							have a single point where targets test if a relocation is needed.
llvm-svn: 122549 
							
						 
						
							2010-12-24 21:22:02 +00:00  
				
					
						
							
							
								 
						
							
								7f2bb4dcae 
								
							 
						 
						
							
							
								
								MC/Mach-O/ARM: Start handling some Thumb branches.  
							
							... 
							
							
							
							llvm-svn: 122547 
							
						 
						
							2010-12-24 16:41:46 +00:00  
				
					
						
							
							
								 
						
							
								ac8173cf71 
								
							 
						 
						
							
							
								
								MC/Mach-O/ARM: Don't try to use scattered relocs for BR24 fixups.  
							
							... 
							
							
							
							llvm-svn: 122441 
							
						 
						
							2010-12-22 21:26:43 +00:00  
				
					
						
							
							
								 
						
							
								6b5d2519b3 
								
							 
						 
						
							
							
								
								Fix another conditional expression mismatched enum type warning.  
							
							... 
							
							
							
							llvm-svn: 122419 
							
						 
						
							2010-12-22 18:25:55 +00:00  
				
					
						
							
							
								 
						
							
								45140d2efc 
								
							 
						 
						
							
							
								
								MC/Mach-O/ARM: We always use the SECTDIFF reloc type on ARM, which is  
							
							... 
							
							
							
							esp. important given that the LOCAL_SECTDIFF enumeration got redefined.
llvm-svn: 122412 
							
						 
						
							2010-12-22 16:52:19 +00:00  
				
					
						
							
							
								 
						
							
								11617c8666 
								
							 
						 
						
							
							
								
								MC/Mach-O/ARM: Clone off an ARM version of RecordScatteredRelocation until I figure out how it is supposed to work.  
							
							... 
							
							
							
							llvm-svn: 122410 
							
						 
						
							2010-12-22 16:45:29 +00:00  
				
					
						
							
							
								 
						
							
								dde72ef0c1 
								
							 
						 
						
							
							
								
								MC/Mach-O: Return to reporting errors if we see unexpected fixup kinds.  
							
							... 
							
							
							
							llvm-svn: 122409 
							
						 
						
							2010-12-22 16:32:41 +00:00  
				
					
						
							
							
								 
						
							
								a191cfd97e 
								
							 
						 
						
							
							
								
								MC/Mach-O/ARM: Recognize generic _Data_N fixup kinds.  
							
							... 
							
							
							
							llvm-svn: 122408 
							
						 
						
							2010-12-22 16:32:37 +00:00  
				
					
						
							
							
								 
						
							
								9ccf843a61 
								
							 
						 
						
							
							
								
								MC/Mach-O/ARM: Add enough relocation logic to get BR24 relocations.  
							
							... 
							
							
							
							llvm-svn: 122407 
							
						 
						
							2010-12-22 16:19:24 +00:00  
				
					
						
							
							
								 
						
							
								56f13732e2 
								
							 
						 
						
							
							
								
								MC/Mach-O/ARM: Fix thinko.  
							
							... 
							
							
							
							llvm-svn: 122406 
							
						 
						
							2010-12-22 16:19:20 +00:00  
				
					
						
							
							
								 
						
							
								083132e131 
								
							 
						 
						
							
							
								
								MC/Mach-O/ARM: Stub out RecordARMRelocation, which is mostly a copy of  
							
							... 
							
							
							
							RecordRelocation with lots of FIXMEs.
llvm-svn: 122402 
							
						 
						
							2010-12-22 13:50:05 +00:00  
				
					
						
							
							
								 
						
							
								a63db77f2e 
								
							 
						 
						
							
							
								
								Simplify.  
							
							... 
							
							
							
							llvm-svn: 122401 
							
						 
						
							2010-12-22 13:49:56 +00:00  
				
					
						
							
							
								 
						
							
								1e5be3653c 
								
							 
						 
						
							
							
								
								MC/Mach-O: Split out RecordARMRelocation for now, it is weird enough it isn't  
							
							... 
							
							
							
							clear how to keep in the generic path (yet).
 - Will revisit when it actually works.
llvm-svn: 122400 
							
						 
						
							2010-12-22 13:49:43 +00:00  
				
					
						
							
							
								 
						
							
								890cb2d506 
								
							 
						 
						
							
							
								
								GCC objects to the two sides of a conditional expression having different enum  
							
							... 
							
							
							
							types, but they're just getting converted to unsigned anyway, so cast first
(and ask questions later).
llvm-svn: 122377 
							
						 
						
							2010-12-21 23:43:23 +00:00  
				
					
						
							
							
								 
						
							
								ff78eda678 
								
							 
						 
						
							
							
								
								MC/Mach-O: Shuffle enums a bit to make it harder to inadvertently use the wrong  
							
							... 
							
							
							
							type.
llvm-svn: 122334 
							
						 
						
							2010-12-21 15:26:45 +00:00  
				
					
						
							
							
								 
						
							
								b403e098a1 
								
							 
						 
						
							
							
								
								Merge isAbsolute into IsSymbolRefDifferenceFullyResolved.  
							
							... 
							
							
							
							llvm-svn: 122148 
							
						 
						
							2010-12-18 06:27:54 +00:00  
				
					
						
							
							
								 
						
							
								8396dd0893 
								
							 
						 
						
							
							
								
								Remove the MCObjectFormat class.  
							
							... 
							
							
							
							llvm-svn: 122147 
							
						 
						
							2010-12-18 05:37:28 +00:00  
				
					
						
							
							
								 
						
							
								2ee6c9b8c9 
								
							 
						 
						
							
							
								
								MC/Mach-O: On second thought, use a custom hook for enabling aggressive  
							
							... 
							
							
							
							IsSymbolRefDifferenceFullyResolved, it turns out this does change behavior on
enough cases for x86-32 that I would rather wait a bit on it.
 - In practice, we will want to change this eventually because it only means we
   generate less relocations (it also eliminates the need for the horrible
   '.set' hack that Darwin requires in some places).
llvm-svn: 122042 
							
						 
						
							2010-12-17 05:50:29 +00:00  
				
					
						
							
							
								 
						
							
								b27bb86ba5 
								
							 
						 
						
							
							
								
								MC/Mach-O: Implement IsSymbolRefDifferenceFullyResolved.  
							
							... 
							
							
							
							- Unlike for fixups, we always do the "reliable" thing (not just for x86_64).
 - Since Darwin 'as' would typically reject things that using this will allow,
   we don't need to worry about compatibility.
llvm-svn: 122038 
							
						 
						
							2010-12-17 04:54:58 +00:00  
				
					
						
							
							
								 
						
							
								f2adf782ab 
								
							 
						 
						
							
							
								
								MC/ObjectWriter: Add a new IsSymbolRefDifferenceFullyResolved target format specific hook.  
							
							... 
							
							
							
							- Currently just has stub implementations for Mach-O, ELF, and COFF.
llvm-svn: 122037 
							
						 
						
							2010-12-17 04:54:54 +00:00  
				
					
						
							
							
								 
						
							
								50269280f8 
								
							 
						 
						
							
							
								
								MC/Assembler: Strip out object writer arguments, now that it is always available  
							
							... 
							
							
							
							-- and remove FIXME asking for the same!
llvm-svn: 122032 
							
						 
						
							2010-12-17 02:45:59 +00:00  
				
					
						
							
							
								 
						
							
								d2867f13a0 
								
							 
						 
						
							
							
								
								MC/Target: Remove HasScatteredSymbols target hook variable, which has been  
							
							... 
							
							
							
							superceded and was effectively dead.
llvm-svn: 122024 
							
						 
						
							2010-12-17 02:06:08 +00:00  
				
					
						
							
							
								 
						
							
								03fcccbb47 
								
							 
						 
						
							
							
								
								MC/Mach-O: Lift some MachObjectWriter arguments into the target specific  
							
							... 
							
							
							
							interface.
llvm-svn: 121981 
							
						 
						
							2010-12-16 17:21:02 +00:00  
				
					
						
							
							
								 
						
							
								8888a9604d 
								
							 
						 
						
							
							
								
								MC/Mach-O: Stub out explicit MCMachObjectTargetWriter interface.  
							
							... 
							
							
							
							llvm-svn: 121973 
							
						 
						
							2010-12-16 16:09:19 +00:00  
				
					
						
							
							
								 
						
							
								73b8713d7c 
								
							 
						 
						
							
							
								
								MC/Mach-O: Move createMachObjectWriter into MCMachObjectWriter.h.  
							
							... 
							
							
							
							llvm-svn: 121971 
							
						 
						
							2010-12-16 16:08:33 +00:00  
				
					
						
							
							
								 
						
							
								9d1ed19982 
								
							 
						 
						
							
							
								
								MC/Mach-O: Use fixup info instead of hard coded list.  
							
							... 
							
							
							
							llvm-svn: 121970 
							
						 
						
							2010-12-16 15:42:31 +00:00  
				
					
						
							
							
								 
						
							
								e78d3b38de 
								
							 
						 
						
							
							
								
								Fix absolute recording of differences of symbols in two sections. Reduced from ctor_dtor_count-2.cpp.  
							
							... 
							
							
							
							llvm-svn: 121152 
							
						 
						
							2010-12-07 17:12:32 +00:00  
				
					
						
							
							
								 
						
							
								bdbe5a712d 
								
							 
						 
						
							
							
								
								Fix relocations with weak definitions.  
							
							... 
							
							
							
							llvm-svn: 121114 
							
						 
						
							2010-12-07 05:57:28 +00:00  
				
					
						
							
							
								 
						
							
								2eabaae459 
								
							 
						 
						
							
							
								
								Fix pcrel relocations that cross sections.  
							
							... 
							
							
							
							llvm-svn: 121107 
							
						 
						
							2010-12-07 03:50:14 +00:00  
				
					
						
							
							
								 
						
							
								a2421ec705 
								
							 
						 
						
							
							
								
								Fix a crash reduced from gcc produced assembly.  
							
							... 
							
							
							
							llvm-svn: 121085 
							
						 
						
							2010-12-07 01:09:54 +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  
				
					
						
							
							
								 
						
							
								e134b08daa 
								
							 
						 
						
							
							
								
								use getSymbolOffset.  
							
							... 
							
							
							
							llvm-svn: 121041 
							
						 
						
							2010-12-06 21:51:55 +00:00  
				
					
						
							
							
								 
						
							
								408344017e 
								
							 
						 
						
							
							
								
								Another use of getSymbolOffset.  
							
							... 
							
							
							
							llvm-svn: 121034 
							
						 
						
							2010-12-06 19:55:05 +00:00  
				
					
						
							
							
								 
						
							
								ce2bd8d05f 
								
							 
						 
						
							
							
								
								Add support for binary encoding of ARM 'adr' instructions referencing constant  
							
							... 
							
							
							
							pool entries (LEApcrel pseudo). Ongoing saga of rdar://8542291.
llvm-svn: 120635 
							
						 
						
							2010-12-02 00:28:45 +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  
				
					
						
							
							
								 
						
							
								0ac77d526d 
								
							 
						 
						
							
							
								
								macho-dump: Add support for dumping relocation entries.  
							
							... 
							
							
							
							llvm-svn: 120216 
							
						 
						
							2010-11-27 13:39:48 +00:00  
				
					
						
							
							
								 
						
							
								768a5e8004 
								
							 
						 
						
							
							
								
								Fix a comment.  
							
							... 
							
							
							
							llvm-svn: 120199 
							
						 
						
							2010-11-27 07:39:37 +00:00  
				
					
						
							
							
								 
						
							
								4b128a5d4f 
								
							 
						 
						
							
							
								
								Reduce nesting.  
							
							... 
							
							
							
							llvm-svn: 120189 
							
						 
						
							2010-11-27 05:18:48 +00:00  
				
					
						
							
							
								 
						
							
								eab6e401fe 
								
							 
						 
						
							
							
								
								MC/Mach-O: Migrate more constants into MachOFormat.h.  
							
							... 
							
							
							
							llvm-svn: 120188 
							
						 
						
							2010-11-27 04:59:14 +00:00  
				
					
						
							
							
								 
						
							
								2263ca4834 
								
							 
						 
						
							
							
								
								MC/Mach-O: Introduce Object/MachOFormat for describing purely platform / machine  
							
							... 
							
							
							
							independent information on the Mach object format, and move some stuff from
MachObjectWriter.cpp there.
llvm-svn: 120186 
							
						 
						
							2010-11-27 04:19:38 +00:00  
				
					
						
							
							
								 
						
							
								7a2cd8b540 
								
							 
						 
						
							
							
								
								make isVirtualSection a virtual method on MCSection. Chris' suggestion.  
							
							... 
							
							
							
							llvm-svn: 119547 
							
						 
						
							2010-11-17 20:03:54 +00:00  
				
					
						
							
							
								 
						
							
								fe0c28f4db 
								
							 
						 
						
							
							
								
								MC: Simplify Mach-O and ELF object writer implementations.  
							
							... 
							
							
							
							- What was I thinking?????
llvm-svn: 118992 
							
						 
						
							2010-11-13 07:33:40 +00:00  
				
					
						
							
							
								 
						
							
								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