Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								d6860522b2 
								
							 
						 
						
							
							
								
								Don't hardcode the %reg format in the streamer.  
							
							 
							
							... 
							
							
							
							llvm-svn: 132451 
							
						 
						
							2011-06-02 02:34:55 +00:00  
						
					 
				
					
						
							
							
								 
								Joerg Sonnenberger
							
						 
						
							 
							
							
							
							
								
							
							
								af5f23ee07 
								
							 
						 
						
							
							
								
								Add new -d option to tblgen. It writes a make(1)-style dependency file.  
							
							 
							
							... 
							
							
							
							llvm-svn: 132395 
							
						 
						
							2011-06-01 13:10:15 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								08600bcf65 
								
							 
						 
						
							
							
								
								Use the dwarf->llvm mapping to print register names in the cfi  
							
							 
							
							... 
							
							
							
							directives.
Fixes PR9826.
llvm-svn: 132317 
							
						 
						
							2011-05-30 20:20:15 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								03eef62db0 
								
							 
						 
						
							
							
								
								Add a parameter to the Win64 EH section getters to get a section with a  
							
							 
							
							... 
							
							
							
							suffix (e.g. .xdata$myfunc). The suffix part isn't implemented yet, but
I'll get to it in the next patch.
Fix up all callers of the affected functions. Make them pass said suffix to
the function.
llvm-svn: 132205 
							
						 
						
							2011-05-27 19:09:24 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								ea5dc3a67b 
								
							 
						 
						
							
							
								
								Assorted fixes for Win64 EH unwind info emission:  
							
							 
							
							... 
							
							
							
							- Flip order of bitfields. This gets our output matching GAS.
- Handle case where the end of the prolog wasn't specified.
- If the resulting unwind info struct is less than 8 bytes, pad to 8 bytes.
Add a test for the latter two.
llvm-svn: 132188 
							
						 
						
							2011-05-27 15:10:25 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								6d1c4c73a9 
								
							 
						 
						
							
							
								
								Start keeping track of where the various unwind instructions are in the prolog.  
							
							 
							
							... 
							
							
							
							Use them to calculate the offset inside the prolog. Emit this value when
emitting the unwind codes.
llvm-svn: 132177 
							
						 
						
							2011-05-27 03:25:01 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								761313b28d 
								
							 
						 
						
							
							
								
								Add missing break statements. Align UNWIND_INFO and RUNTIME_FUNCTION structs  
							
							 
							
							... 
							
							
							
							to 4 bytes.
I'm surprised no one caught the missing break statements.
llvm-svn: 132176 
							
						 
						
							2011-05-27 02:43:19 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								a60cd577fd 
								
							 
						 
						
							
							
								
								My attempt at fixing the leak reported by the valgrind buildbots. Valgrind will  
							
							 
							
							... 
							
							
							
							still report leaks, but they're spurious now. Valgrind cannot peer into
std::vector objects--or any dynamic array, for that matter--because it doesn't
know how big the array is.
llvm-svn: 132174 
							
						 
						
							2011-05-27 02:01:08 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								9dcee31aab 
								
							 
						 
						
							
							
								
								Fix inverted conditional in SaveReg and SaveXMM. Err when the frame pointer is  
							
							 
							
							... 
							
							
							
							already defined, and err when the PushMachFrame operation isn't the first
operation (if specified at all).
llvm-svn: 132173 
							
						 
						
							2011-05-27 01:42:17 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								006e1c39d0 
								
							 
						 
						
							
							
								
								Test .seh_startchained and .seh_endchained parsing.  
							
							 
							
							... 
							
							
							
							Rework how the MCWin64EHUnwindInfo instances are stored. Fix issues with
chained unwind areas exposed by the test that were related to this.
The ChainedParent field had the wrong address, because when the chained unwind
info was added, the addresses shifted around. Now we store the pointers to the
structures, which are now allocated from the MC heap.
llvm-svn: 132106 
							
						 
						
							2011-05-26 02:45:47 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								2f6ecea19d 
								
							 
						 
						
							
							
								
								Add tests for .seh_setframe and .seh_handlerdata parsing. Fix issues with  
							
							 
							
							... 
							
							
							
							them.
I had to add a special SwitchSectionNoChange method to MCStreamer just for
.seh_handlerdata. If this isn't OK, please let me know, and I'll find some
other way to fix .seh_handlerdata streaming.
llvm-svn: 132084 
							
						 
						
							2011-05-25 21:43:45 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								828b00c0e1 
								
							 
						 
						
							
							
								
								Add tests for .seh_savereg and .seh_savexmm parsing. Once again, fix the  
							
							 
							
							... 
							
							
							
							buggy methods that parse these directives.
llvm-svn: 132045 
							
						 
						
							2011-05-25 04:51:25 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								b0c4f39173 
								
							 
						 
						
							
							
								
								Add a test for .seh_pushframe parsing. Fix the bug exposed by it (and another  
							
							 
							
							... 
							
							
							
							one I found by inspection).
llvm-svn: 132037 
							
						 
						
							2011-05-25 04:08:15 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								fc1e7ce850 
								
							 
						 
						
							
							
								
								Add a test for the .seh_handler directive. Fix problems with the parsing  
							
							 
							
							... 
							
							
							
							method exposed by the test. While we're at it, simplify the .seh_proc
parsing method.
llvm-svn: 132028 
							
						 
						
							2011-05-25 01:33:42 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								f4ce8fde18 
								
							 
						 
						
							
							
								
								Test basic SEH directive-parsing functionality. Fix a latent bug exposed by  
							
							 
							
							... 
							
							
							
							this test.
llvm-svn: 132004 
							
						 
						
							2011-05-24 21:22:53 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								7f6176c3f9 
								
							 
						 
						
							
							
								
								Implement the rest of the SEH directive-parsing methods in the COFFAsmParser.  
							
							 
							
							... 
							
							
							
							Add a size alignment check to the .seh_stackalloc directive parser. Add a
more descriptive error message to the .seh_handler directive parser.
Add methods to the TargetAsmInfo struct in support of all this.
llvm-svn: 131992 
							
						 
						
							2011-05-24 20:06:30 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								bae9fee95f 
								
							 
						 
						
							
							
								
								Propagate error correctly in the MC Asm parser for leading '$' expressions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131918 
							
						 
						
							2011-05-23 20:36:04 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								d9eafdcfd5 
								
							 
						 
						
							
							
								
								Implement .seh_stackalloc and .seh_pushframe parsing.  
							
							 
							
							... 
							
							
							
							I haven't implemented any of the ones that take registers yet. The problem is
that for x86-64 the streamer methods expect a native x86 register number (note:
%r8-%r15 want 8-15 instead of 0-7; same for %xmm8-%xmm15). I haven't figured
out exactly how I want to do that yet.
llvm-svn: 131899 
							
						 
						
							2011-05-23 16:43:09 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								c7250faeb1 
								
							 
						 
						
							
							
								
								Add methods to parse the SEH directives to the COFFAsmParser. Implement some  
							
							 
							
							... 
							
							
							
							of them, particularly the ones that don't take arguments. Also implement
.seh_proc and .seh_handler.
llvm-svn: 131866 
							
						 
						
							2011-05-22 21:12:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1d068cc0b0 
								
							 
						 
						
							
							
								
								switch to using a smallvector to avoid allocations for most normal size instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131837 
							
						 
						
							2011-05-22 04:53:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								0388fb0ee2 
								
							 
						 
						
							
							
								
								tidy some things up.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131836 
							
						 
						
							2011-05-22 04:52:24 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								bc2daa0f93 
								
							 
						 
						
							
							
								
								Implement emission of all Win64 exception tables. Make the COFF streamer emit  
							
							 
							
							... 
							
							
							
							these tables.
llvm-svn: 131833 
							
						 
						
							2011-05-22 04:15:07 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								1c8bd5ad7e 
								
							 
						 
						
							
							
								
								Make the COFF streamer emit unwind info when processing a .seh_handlerdata  
							
							 
							
							... 
							
							
							
							directive.
Implement emission of Win64 EH unwind info.
Pull in <cassert> in MCWin64EH.h so it can use the assert() macro.
llvm-svn: 131832 
							
						 
						
							2011-05-22 03:01:05 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								e636022b4d 
								
							 
						 
						
							
							
								
								Don't allow unaligned offsets and sizes in the Win64 EH directives.  
							
							 
							
							... 
							
							
							
							Also, fix threshold for 'Big' register saves.
llvm-svn: 131830 
							
						 
						
							2011-05-22 00:56:20 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								6879634efd 
								
							 
						 
						
							
							
								
								Don't allow .seh_handler and .seh_handlerdata directives inside chained  
							
							 
							
							... 
							
							
							
							unwind areas.
llvm-svn: 131795 
							
						 
						
							2011-05-21 17:36:25 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								8e8f59bdfb 
								
							 
						 
						
							
							
								
								A handler for a function in the Win64 EH scheme can be both an unwind handler  
							
							 
							
							... 
							
							
							
							and an exception handler. Handle that case.
Also, add an 'Emitted' member to the MCWin64EHUnwindInfo struct. It will be
needed later.
llvm-svn: 131791 
							
						 
						
							2011-05-21 15:57:49 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								54254008ba 
								
							 
						 
						
							
							
								
								Set the "LastFrameInst" field when streaming a .seh_setframe directive. This  
							
							 
							
							... 
							
							
							
							is needed for an upcoming patch.
llvm-svn: 131772 
							
						 
						
							2011-05-21 00:09:04 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								8aded86edb 
								
							 
						 
						
							
							
								
								No reason not to allow defining the CFA as a reg w/ offset zero.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131760 
							
						 
						
							2011-05-20 21:50:09 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								860b03b5f9 
								
							 
						 
						
							
							
								
								Add missing leading \t when printing .cfi_def_cfa in the asmstreamer.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131755 
							
						 
						
							2011-05-20 21:22:37 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								1866808384 
								
							 
						 
						
							
							
								
								fixes target address tBL and tBLX and sets relocation type  
							
							 
							
							... 
							
							
							
							of tBL/tBLX to R_ARM_THM_CALL (ARM ELF 4.7.1.6)
Patch by koan-sin tan.
llvm-svn: 131748 
							
						 
						
							2011-05-20 20:01:01 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								9a115a4bd2 
								
							 
						 
						
							
							
								
								Now that they're implemented, make the Win64 EH MCAsmStreamer methods call  
							
							 
							
							... 
							
							
							
							super.
llvm-svn: 131743 
							
						 
						
							2011-05-20 18:19:22 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								24b31b6b7d 
								
							 
						 
						
							
							
								
								"Implement" the HandlerData Win64 EH method in the base MCStreamer.  
							
							 
							
							... 
							
							
							
							There's really nothing to implement. All this really does is swap to a
pseudo-section that later gets written to the unwind info struct. That
needs to be implemented in the object streamers.
llvm-svn: 131734 
							
						 
						
							2011-05-20 16:06:22 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								1edfb17bc2 
								
							 
						 
						
							
							
								
								Looks like OS X assemblers (including MC) don't like  
							
							 
							
							... 
							
							
							
							foo:
bar = foo
.quad bar
Avoid producing it. Fixes PR9951.
llvm-svn: 131687 
							
						 
						
							2011-05-19 22:05:56 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								8e129296fe 
								
							 
						 
						
							
							
								
								Misc code refactorings:  
							
							 
							
							... 
							
							
							
							* Remove unnecessary arguments now that ForceExpAbs is a method.
* Use ForceExpAbs in EmitAbsValue.
llvm-svn: 131683 
							
						 
						
							2011-05-19 21:40:34 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								de745ba396 
								
							 
						 
						
							
							
								
								Implement the EndProlog Win64 EH method on the base MCStreamer.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131679 
							
						 
						
							2011-05-19 21:24:54 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								7e6e8951af 
								
							 
						 
						
							
							
								
								Implement the Win64 EH prolog instruction methods on the base MCStreamer.  
							
							 
							
							... 
							
							
							
							I had to change the API slightly to avoid overloading issues.
llvm-svn: 131666 
							
						 
						
							2011-05-19 19:35:55 +00:00  
						
					 
				
					
						
							
							
								 
								Joerg Sonnenberger
							
						 
						
							 
							
							
							
							
								
							
							
								74ba2623ce 
								
							 
						 
						
							
							
								
								Reapply 131644 including the missing header changes:  
							
							 
							
							... 
							
							
							
							Introduce -fatal-assembler-warnings for the obvious purpose
llvm-svn: 131655 
							
						 
						
							2011-05-19 18:00:13 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								3e2f17499e 
								
							 
						 
						
							
							
								
								Revert r131644; it's breaking the build.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131653 
							
						 
						
							2011-05-19 17:48:09 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								4cd8856704 
								
							 
						 
						
							
							
								
								Turns out GAS does have Win64 EH directives. (It also supports WinCE EH.) Make  
							
							 
							
							... 
							
							
							
							ours compatible with GAS.
In retrospect, I should have emailed binutils about this earlier. Thanks to
Kai Tietz for pointing out that GAS already had SEH directives.
llvm-svn: 131652 
							
						 
						
							2011-05-19 17:46:39 +00:00  
						
					 
				
					
						
							
							
								 
								Joerg Sonnenberger
							
						 
						
							 
							
							
							
							
								
							
							
								59b523169f 
								
							 
						 
						
							
							
								
								Introduce -fatal-assembler-warnings for the obvious purpose  
							
							 
							
							... 
							
							
							
							llvm-svn: 131644 
							
						 
						
							2011-05-19 17:27:01 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								b4222589bf 
								
							 
						 
						
							
							
								
								Implement the StartChained and EndChained Win64 EH methods on MCStreamer.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131629 
							
						 
						
							2011-05-19 04:04:13 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								d991ec4e68 
								
							 
						 
						
							
							
								
								Implement the StartProc and EndProc Win64 EH methods on the base MCStreamer.  
							
							 
							
							... 
							
							
							
							Based largely on Rafael Espindola's work on CFI. Other methods soon to follow.
llvm-svn: 131623 
							
						 
						
							2011-05-19 02:49:00 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								27117af772 
								
							 
						 
						
							
							
								
								Remove comments as Chris requested.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131590 
							
						 
						
							2011-05-18 22:13:51 +00:00  
						
					 
				
					
						
							
							
								 
								Cameron Zwarich
							
						 
						
							 
							
							
							
							
								
							
							
								492f87de4e 
								
							 
						 
						
							
							
								
								Fix an obvious typo in r131572.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131579 
							
						 
						
							2011-05-18 21:29:07 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								77e0610d7c 
								
							 
						 
						
							
							
								
								Add some more Win64 EH directives:  
							
							 
							
							... 
							
							
							
							- StartChained and EndChained delimit a chained unwind area, which can contain
  additional operations to be undone if an exception occurs inside of it.
- UnwindOnly declares that this function doesn't handle any exceptions. If it
  has a handler, it's an unwind handler instead of an exception handler.
- Lsda declares the location and size of the LSDA, which in the Win64 EH
  scheme is kept inside the UNWIND_INFO struct. Windows itself ignores the
  LSDA; it's used by the Language-Specific Handler (the "Personality Function"
  from DWARF).
llvm-svn: 131572 
							
						 
						
							2011-05-18 20:54:10 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								8d9c99042f 
								
							 
						 
						
							
							
								
								Implement the Win64 EH directive methods for the assembly language streamer.  
							
							 
							
							... 
							
							
							
							GAS has no such directives (not even mingw-w64 GAS has them), so I took
creative license with their names in assembly. I prefixed them all with
"w64_" to avoid namespace collisions, for example. If I discover that GAS
has taken a different approach, I'll change ours to match.
llvm-svn: 131525 
							
						 
						
							2011-05-18 04:58:05 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								384041d0dc 
								
							 
						 
						
							
							
								
								While thinking about how to know where the functions' boundaries are for  
							
							 
							
							... 
							
							
							
							the purposes of the Win64 EH tables, I realized we had no way to tell where
the function ends. (MASM bounds functions with PROC and ENDP keywords.)
Add a directive to delimit the end of the function, and rename the 'frame'
directive to more accurately reflect its duality with the new directive.
llvm-svn: 131522 
							
						 
						
							2011-05-18 04:47:22 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								2701815ed8 
								
							 
						 
						
							
							
								
								Add a method I forgot in the last commit. Don't worry, this one passed  
							
							 
							
							... 
							
							
							
							self-host :).
llvm-svn: 131421 
							
						 
						
							2011-05-16 21:13:58 +00:00  
						
					 
				
					
						
							
							
								 
								Jason W Kim
							
						 
						
							 
							
							
							
							
								
							
							
								94c31fdd31 
								
							 
						 
						
							
							
								
								Add a FIXME reminder to remove ForceARMElfPIC switch.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131411 
							
						 
						
							2011-05-16 16:35:21 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								e90c1cb221 
								
							 
						 
						
							
							
								
								sets bit 0 of the function address of thumb function in .symtab  
							
							 
							
							... 
							
							
							
							("T is 1 if the target symbol S has type STT_FUNC and the
symbol addresses a Thumb instruction ;it is 0 otherwise."
from "ELF for the ARM Architecture" 4.7.1.2)
Patch by Koan-Sin Tan!
llvm-svn: 131406 
							
						 
						
							2011-05-16 16:17:21 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								2f10078ae7 
								
							 
						 
						
							
							
								
								Fix copy-pasto.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131384 
							
						 
						
							2011-05-15 17:28:27 +00:00  
						
					 
				
					
						
							
							
								 
								Charles Davis
							
						 
						
							 
							
							
							
							
								
							
							
								af18d07ed6 
								
							 
						 
						
							
							
								
								Add stub methods to MCStreamer for emitting Win64 exception-handling  
							
							 
							
							... 
							
							
							
							information.
llvm-svn: 131382 
							
						 
						
							2011-05-15 17:20:01 +00:00  
						
					 
				
					
						
							
							
								 
								Matt Beaumont-Gay
							
						 
						
							 
							
							
							
							
								
							
							
								7c6c90b35d 
								
							 
						 
						
							
							
								
								Remove an unused variable and move a couple others inside DEBUG.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131208 
							
						 
						
							2011-05-11 23:34:51 +00:00  
						
					 
				
					
						
							
							
								 
								Jason W Kim
							
						 
						
							 
							
							
							
							
								
							
							
								c09e726455 
								
							 
						 
						
							
							
								
								Address the last bit of relocation flag related divergence betweeen  
							
							 
							
							... 
							
							
							
							LLVM and binutils.
With this patch, there are no functional differences between the .o
produced directly from LLVM versus the .s to .o via GNU as, for relocation tags
at least, for both PIC and non-PIC modes.
Because some non-PIC reloc tags are used (legally) on PIC, so IsPCRel flag is
necessary but not sufficient to determine whether the overall codegen mode is
PIC or not. Why is this necessary? There is an incompatibility of how relocs
are emitted in the .rodata section.  Binutils PIC likes to emit certain relocs
as section relative offsets.  Non-PIC does not do this.
So I added a hidden switch on the ELFObjectwriter "-arm-elf-force-pic" which
forces the objectwriter to pretend that all relocs are for PIC mode.
Todo: Activate ForceARMElfPIC to true if -relocation-model=pic is selected
on llc.
Todo: There are probably more issues for PIC mode on ARM/MC/ELF...
Todo: Existing tests in MC/ARM/elf-reloc*.ll need to be converted over to .s 
tests as well as expanded to cover the gamut.
llvm-svn: 131205 
							
						 
						
							2011-05-11 22:53:06 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								de32fa163f 
								
							 
						 
						
							
							
								
								Avoid a gcc warning.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131161 
							
						 
						
							2011-05-10 22:28:35 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								99f6735532 
								
							 
						 
						
							
							
								
								On MachO, unlike ELF, there should be no relocation to produce the CIE pointer.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131149 
							
						 
						
							2011-05-10 20:59:42 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								2fe0ee1ce2 
								
							 
						 
						
							
							
								
								Rename DwarfRequiresRelocationForStmtList to  
							
							 
							
							... 
							
							
							
							DwarfRequiresRelocationForSectionOffset as this is not specific to StmtList.
llvm-svn: 131148 
							
						 
						
							2011-05-10 20:35:05 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								d0d2354258 
								
							 
						 
						
							
							
								
								The EH symbols are only needed in eh_frame, not debug_frame.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131146 
							
						 
						
							2011-05-10 19:51:53 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								27390b4a0e 
								
							 
						 
						
							
							
								
								In a debug_frame the cfi offset is to the start of the debug_frame section!  
							
							 
							
							... 
							
							
							
							llvm-svn: 131129 
							
						 
						
							2011-05-10 15:20:23 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								ec53aa9485 
								
							 
						 
						
							
							
								
								Add CFIStartSections to the asm printer. Add an assert that at least  
							
							 
							
							... 
							
							
							
							one of the sections is created.
llvm-svn: 131124 
							
						 
						
							2011-05-10 13:39:48 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								1ecb12fc57 
								
							 
						 
						
							
							
								
								Add support for producing .deubg_frame sections.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131121 
							
						 
						
							2011-05-10 03:54:12 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								b6444c0401 
								
							 
						 
						
							
							
								
								Small cleanups.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131120 
							
						 
						
							2011-05-10 03:26:21 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								b6089d6cac 
								
							 
						 
						
							
							
								
								Factor some code into a new EmitFrames method.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131119 
							
						 
						
							2011-05-10 03:14:15 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								0e130d1d37 
								
							 
						 
						
							
							
								
								Remove unused argument.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131118 
							
						 
						
							2011-05-10 03:01:39 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								74b101f3e3 
								
							 
						 
						
							
							
								
								Parsing and plumbing for .cfi_sections.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131117 
							
						 
						
							2011-05-10 01:10:18 +00:00  
						
					 
				
					
						
							
							
								 
								NAKAMURA Takumi
							
						 
						
							 
							
							
							
							
								
							
							
								392445823d 
								
							 
						 
						
							
							
								
								Eliminate an unused line to fix a warning.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131078 
							
						 
						
							2011-05-08 23:19:04 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								ab39c63538 
								
							 
						 
						
							
							
								
								Don't force relaxation of AdvanceLoc instructions on OS X. gdb is happy with  
							
							 
							
							... 
							
							
							
							the smaller encoding and this cuts 270336 bytes from a release version of
clang and 1246272 bytes from a debug build.
llvm-svn: 131067 
							
						 
						
							2011-05-08 14:35:21 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								bcabcdcedd 
								
							 
						 
						
							
							
								
								Switch Darwin to the generic CIE/FDE printer.  
							
							 
							
							... 
							
							
							
							llvm-svn: 131031 
							
						 
						
							2011-05-06 22:29:04 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								a716096677 
								
							 
						 
						
							
							
								
								Dead code elimination.  
							
							 
							
							... 
							
							
							
							llvm-svn: 130984 
							
						 
						
							2011-05-06 14:56:22 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								a4982bddf3 
								
							 
						 
						
							
							
								
								Don't produce a __debug_frame.  
							
							 
							
							... 
							
							
							
							I tested both gdb on a bootstrapped clang and and the gdb testsuite on OS X (snow leopard)
and both are happy using __eh_frame.
llvm-svn: 130937 
							
						 
						
							2011-05-05 18:43:39 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								a75589171a 
								
							 
						 
						
							
							
								
								Producing a DW_FORM_addr for DW_AT_stmt_list is probably correct, but  
							
							 
							
							... 
							
							
							
							it is both inefficient and unexpected by dwarfdump. Change to
a DW_FORM_data4.
While in here, change the predicate name to reflect that the position
is not really absolute (it is an offset), just that the linker needs a
relocation.
llvm-svn: 130846 
							
						 
						
							2011-05-04 17:44:06 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								f6daf94ab2 
								
							 
						 
						
							
							
								
								MCDwarf: Don't save Twine to local variable, this is almost never safe to do  
							
							 
							
							... 
							
							
							
							(and should thus never be done).
 - Should fix a crash on win32.
llvm-svn: 130793 
							
						 
						
							2011-05-03 21:33:37 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								fc8223670a 
								
							 
						 
						
							
							
								
								Add r130623 back now that ELF has been fixed to work with -fno-dwarf2-cfi-asm.  
							
							 
							
							... 
							
							
							
							llvm-svn: 130658 
							
						 
						
							2011-05-01 15:44:13 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								750cb61553 
								
							 
						 
						
							
							
								
								GCC uses a different encoding of pointers in the FDE when using  
							
							 
							
							... 
							
							
							
							-fno-dwarf2-cfi-asm. Implement the same behavior.
llvm-svn: 130637 
							
						 
						
							2011-05-01 04:49:54 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								fd05785324 
								
							 
						 
						
							
							
								
								Simplify the handling of pcrel relocations on ELF. Now we do the right thing  
							
							 
							
							... 
							
							
							
							for all symbol differences and can drop the old EmitPCRelSymbolValue
method.
This also make getExprForFDESymbol on ELF equal to the one on MachO, and it
can be made non-virtual.
llvm-svn: 130634 
							
						 
						
							2011-05-01 03:50:49 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								b7c2286055 
								
							 
						 
						
							
							
								
								Revert the previous patch while I figure out how to make llvm-gcc  
							
							 
							
							... 
							
							
							
							less agressive about disabling cfi on linux :-(
llvm-svn: 130626 
							
						 
						
							2011-04-30 23:03:44 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								5265bc483e 
								
							 
						 
						
							
							
								
								Enable CFI on OS X.  
							
							 
							
							... 
							
							
							
							Currently the output should be almost identical to the one produced by CodeGen
to make the transition easier.
The only two differences I know of are:
* Some files get an extra advance loc of size 0. This will be fixed when
relaxations are enabled.
* The optimization of declaring an EH symbol as an external variable is not
implemented. This is a subset of adding the nounwind attribute, so we if really
this at -O0 we should probably do it at the IL level.
llvm-svn: 130623 
							
						 
						
							2011-04-30 22:29:54 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								bde52bca69 
								
							 
						 
						
							
							
								
								Implement MCAsmStreamer::EmitEHSymAttributes. Doing this in the asm streamer  
							
							 
							
							... 
							
							
							
							is a bit ugly, but doing it on the base MCStreamer would be redundant
with the object streamer which does it using SD.
llvm-svn: 130611 
							
						 
						
							2011-04-30 16:34:57 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								0b474c2d15 
								
							 
						 
						
							
							
								
								Handle PrivateExtern eh symbols.  
							
							 
							
							... 
							
							
							
							llvm-svn: 130609 
							
						 
						
							2011-04-30 16:22:46 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								a3181d12c6 
								
							 
						 
						
							
							
								
								Add all the plumbing needed for MC to expand cfi to the old tables in  
							
							 
							
							... 
							
							
							
							the final assembly. It is the same technique used when targeting
assemblers that don't support .loc.
llvm-svn: 130587 
							
						 
						
							2011-04-30 03:44:37 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								1d1eced025 
								
							 
						 
						
							
							
								
								Implement MCAsmStreamer::EmitDwarfAdvanceFrameAddr.  
							
							 
							
							... 
							
							
							
							llvm-svn: 130585 
							
						 
						
							2011-04-30 03:21:04 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								6a85f9b42e 
								
							 
						 
						
							
							
								
								Avoid some uses of .uleb128. This is a small speedup and more importantly  
							
							 
							
							... 
							
							
							
							lets this code be used when producing assembly code for old assemblers without
uleb support.
llvm-svn: 130544 
							
						 
						
							2011-04-29 21:50:57 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								6c961e1b75 
								
							 
						 
						
							
							
								
								Implement MCAsmStreamer::EmitCFIDefCfa.  
							
							 
							
							... 
							
							
							
							llvm-svn: 130543 
							
						 
						
							2011-04-29 21:41:06 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								72032861c6 
								
							 
						 
						
							
							
								
								MCAsmLayout: Add support for computing the symbol offset of variables. Not  
							
							 
							
							... 
							
							
							
							currently used, because variables don't get reported as being "defined".
llvm-svn: 130524 
							
						 
						
							2011-04-29 18:20:20 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								bea7b93c88 
								
							 
						 
						
							
							
								
								MC: Change variable symbols to be recognized as defined, by assigning their sections based on FindAssociatedSection().  
							
							 
							
							... 
							
							
							
							llvm-svn: 130523 
							
						 
						
							2011-04-29 18:20:17 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								b200f93125 
								
							 
						 
						
							
							
								
								MC/Mach-O: Update getSymbolAddress() to support evaluation of variables.  
							
							 
							
							... 
							
							
							
							llvm-svn: 130522 
							
						 
						
							2011-04-29 18:13:42 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								124ae13421 
								
							 
						 
						
							
							
								
								Hoist MCLineEntry construction AsmPrinter so that anyone who derives from AsmPrinter can have line number entries.  
							
							 
							
							... 
							
							
							
							PR 9810
llvm-svn: 130518 
							
						 
						
							2011-04-29 18:00:54 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								dc3e4cc5ed 
								
							 
						 
						
							
							
								
								MCExpr: Add FindAssociatedSection, which attempts to mirror the 'as' semantics  
							
							 
							
							... 
							
							
							
							that associate sections with expressions.
llvm-svn: 130517 
							
						 
						
							2011-04-29 18:00:03 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								1bf128eaeb 
								
							 
						 
						
							
							
								
								MC/AsmParser: Generalize a check.  
							
							 
							
							... 
							
							
							
							llvm-svn: 130515 
							
						 
						
							2011-04-29 17:53:11 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								68067664c3 
								
							 
						 
						
							
							
								
								Last bit by bit compatibility patch to MCDwarf.cpp: If a FDE with no LSDA is  
							
							 
							
							... 
							
							
							
							assigned to a CIE that requires one, just output a 0.
llvm-svn: 130472 
							
						 
						
							2011-04-29 03:06:29 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								7c7151512c 
								
							 
						 
						
							
							
								
								Add an alternative implementation of CIE and FDE emission that outputs them  
							
							 
							
							... 
							
							
							
							in the same order as the one in CodeGen.
llvm-svn: 130471 
							
						 
						
							2011-04-29 02:42:28 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								6bd6a70837 
								
							 
						 
						
							
							
								
								Add the getExprForFDESymbol method that responsible for computing the  
							
							 
							
							... 
							
							
							
							expressions used in the FDE to refer to symbols.
llvm-svn: 130437 
							
						 
						
							2011-04-28 21:04:39 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								c5dac4df2e 
								
							 
						 
						
							
							
								
								Add a getExprForPersonalitySymbol method to MCAsmInfo. Use it when  
							
							 
							
							... 
							
							
							
							converting the symbol passed to .cfi_personality into bytes is the file.
llvm-svn: 130400 
							
						 
						
							2011-04-28 16:09:09 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								349c3298da 
								
							 
						 
						
							
							
								
								Mark the EH symbol global or weak if the corresponding function is.  
							
							 
							
							... 
							
							
							
							llvm-svn: 130397 
							
						 
						
							2011-04-28 12:50:37 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								2eeee8cfef 
								
							 
						 
						
							
							
								
								Add a small temporary hack for producing identical eh_frame sections on OS X.  
							
							 
							
							... 
							
							
							
							This removes one of the main advantages of moving eh_frame to MC, but
makes the transition a lot easier to debug (run md5).
llvm-svn: 130379 
							
						 
						
							2011-04-28 04:04:14 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								bf60fb0a37 
								
							 
						 
						
							
							
								
								Produce the EH_frame# symbols if needed.  
							
							 
							
							... 
							
							
							
							llvm-svn: 130378 
							
						 
						
							2011-04-28 03:26:11 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								96b07932a3 
								
							 
						 
						
							
							
								
								Forward isFunctionEHFrameSymbolPrivate. If it is false, produce the foo.eh  
							
							 
							
							... 
							
							
							
							symbols.
llvm-svn: 130375 
							
						 
						
							2011-04-28 02:46:42 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								27c0c9bb87 
								
							 
						 
						
							
							
								
								Factor a bit of code to MCStreamer::EmitLabel. Keep track of the last  
							
							 
							
							... 
							
							
							
							non private symbol. This will be use for handling
foo:
  .cfi_startproc
  ...
On OS X where we have to create a foo.eh symbol.
llvm-svn: 130305 
							
						 
						
							2011-04-27 15:21:19 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								ae124da625 
								
							 
						 
						
							
							
								
								Force some values to be absolute and align based on the FDE pointers size. A small  
							
							 
							
							... 
							
							
							
							step towards using .cfi_* on OS X.
llvm-svn: 130273 
							
						 
						
							2011-04-27 01:43:49 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								3584ab6cc6 
								
							 
						 
						
							
							
								
								No relocation produces a SLEB or ULEB, make sure they are handled in MC.  
							
							 
							
							... 
							
							
							
							llvm-svn: 130181 
							
						 
						
							2011-04-26 02:17:58 +00:00  
						
					 
				
					
						
							
							
								 
								Sebastian Redl
							
						 
						
							 
							
							
							
							
								
							
							
								1b86ea80bb 
								
							 
						 
						
							
							
								
								Give MC/MCDisassembler/Disassembler.h a header guard.  
							
							 
							
							... 
							
							
							
							llvm-svn: 130096 
							
						 
						
							2011-04-24 15:46:56 +00:00  
						
					 
				
					
						
							
							
								 
								Jay Foad
							
						 
						
							 
							
							
							
							
								
							
							
								1a180156b6 
								
							 
						 
						
							
							
								
								Remove unused STL header includes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 130068 
							
						 
						
							2011-04-23 19:53:52 +00:00  
						
					 
				
					
						
							
							
								 
								Chandler Carruth
							
						 
						
							 
							
							
							
							
								
							
							
								bab81b9797 
								
							 
						 
						
							
							
								
								Delete the other unused variable in this function. Sorry I missed this  
							
							 
							
							... 
							
							
							
							the first time through.
llvm-svn: 129969 
							
						 
						
							2011-04-22 01:29:18 +00:00  
						
					 
				
					
						
							
							
								 
								Chandler Carruth
							
						 
						
							 
							
							
							
							
								
							
							
								ea41470726 
								
							 
						 
						
							
							
								
								Remove an unused variable from a function. This is a likely cut-paste-o.  
							
							 
							
							... 
							
							
							
							Silences GCC warning.
I wonder why Clang doesn't warn on this...
llvm-svn: 129968 
							
						 
						
							2011-04-22 01:21:06 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								5395f44fe8 
								
							 
						 
						
							
							
								
								Compute the size of the FDE encoding instead of hard coding it. Update  
							
							 
							
							... 
							
							
							
							X8664_ELFTargetObjectFile::getFDEEncoding to match reality.
llvm-svn: 129959 
							
						 
						
							2011-04-22 00:08:43 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								6aea59268a 
								
							 
						 
						
							
							
								
								Remove unused argument.  
							
							 
							
							... 
							
							
							
							llvm-svn: 129955 
							
						 
						
							2011-04-21 23:39:26 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								ea61f22dd3 
								
							 
						 
						
							
							
								
								Don't pass address spaces to EmitULEB128IntValue.  
							
							 
							
							... 
							
							
							
							llvm-svn: 129953 
							
						 
						
							2011-04-21 23:26:40 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								c3dc486752 
								
							 
						 
						
							
							
								
								Fix relative relocations. This is sufficient for running the rust testsuite with  
							
							 
							
							... 
							
							
							
							MC :-)
llvm-svn: 129923 
							
						 
						
							2011-04-21 18:36:50 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								ed16477cb9 
								
							 
						 
						
							
							
								
								Behave like gnu as when a relocation crosses sections.  
							
							 
							
							... 
							
							
							
							llvm-svn: 129850 
							
						 
						
							2011-04-20 14:01:45 +00:00  
						
					 
				
					
						
							
							
								 
								Sean Callanan
							
						 
						
							 
							
							
							
							
								
							
							
								d897f39797 
								
							 
						 
						
							
							
								
								Made the MC disassembler check before accessing  
							
							 
							
							... 
							
							
							
							MCInst operands for ARM.  This allows it to be
more tolerant of malformed MCInsts or incorrect
instruction metadata.
llvm-svn: 129840 
							
						 
						
							2011-04-20 00:43:34 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								b2545fbc2a 
								
							 
						 
						
							
							
								
								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.)
llvm-svn: 129716 
							
						 
						
							2011-04-18 20:54:46 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								17740e70d5 
								
							 
						 
						
							
							
								
								Reduce clutter in asm output. Do not emit source location as comment for each instruction.  
							
							 
							
							... 
							
							
							
							llvm-svn: 129715 
							
						 
						
							2011-04-18 20:26:49 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								3f8ecf5cc5 
								
							 
						 
						
							
							
								
								Revert r129688; it's breaking buildbots.  
							
							 
							
							... 
							
							
							
							llvm-svn: 129689 
							
						 
						
							2011-04-18 05:54:54 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								2dc287a147 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 129688 
							
						 
						
							2011-04-18 05:38:58 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								0e40208d7b 
								
							 
						 
						
							
							
								
								Make the StringMaps attached to MCContext use the MCContext's allocator;  
							
							 
							
							... 
							
							
							
							reduces the number of calls to malloc().
llvm-svn: 129687 
							
						 
						
							2011-04-18 05:02:31 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								539d96f01d 
								
							 
						 
						
							
							
								
								Be consistent about being virtual and returning void in the cfi methods.  
							
							 
							
							... 
							
							
							
							Implement the ones that were missing in the asm streamer.
llvm-svn: 129413 
							
						 
						
							2011-04-12 23:59:07 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								fd794affe5 
								
							 
						 
						
							
							
								
								Remove LastOffset from the asm parser.  
							
							 
							
							... 
							
							
							
							llvm-svn: 129378 
							
						 
						
							2011-04-12 18:53:30 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								1ec0f46169 
								
							 
						 
						
							
							
								
								Fix the case of a .cfi_rel_offset before any .cfi_def_cfa_offset.  
							
							 
							
							... 
							
							
							
							llvm-svn: 129362 
							
						 
						
							2011-04-12 16:12:03 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								2e1c9d2188 
								
							 
						 
						
							
							
								
								Implement  .cfi_same_value.  
							
							 
							
							... 
							
							
							
							llvm-svn: 129361 
							
						 
						
							2011-04-12 15:31:05 +00:00  
						
					 
				
					
						
							
							
								 
								Eric Christopher
							
						 
						
							 
							
							
							
							
								
							
							
								ffc0e1f6e6 
								
							 
						 
						
							
							
								
								Match case for invalid constant error messages and add a new  
							
							 
							
							... 
							
							
							
							test for invalid hexadecimals.
llvm-svn: 129326 
							
						 
						
							2011-04-12 00:18:03 +00:00  
						
					 
				
					
						
							
							
								 
								Eric Christopher
							
						 
						
							 
							
							
							
							
								
							
							
								104af0619e 
								
							 
						 
						
							
							
								
								To avoid printing out multiple error messages for cases like:  
							
							 
							
							... 
							
							
							
							.long 80+08
go ahead and assume that if we've got an Error token that we handled it
already. Otherwise if it's a token we can't handle then go ahead and
return the default error.
llvm-svn: 129322 
							
						 
						
							2011-04-12 00:03:13 +00:00  
						
					 
				
					
						
							
							
								 
								Eric Christopher
							
						 
						
							 
							
							
							
							
								
							
							
								64749f2a89 
								
							 
						 
						
							
							
								
								Lex, and then fail on invalid constants.  
							
							 
							
							... 
							
							
							
							Testcase forthcoming.
rdar://8490596
llvm-svn: 129309 
							
						 
						
							2011-04-11 22:24:56 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								82065cb6cf 
								
							 
						 
						
							
							
								
								Implement cfi_rel_offset  
							
							 
							
							... 
							
							
							
							llvm-svn: 129306 
							
						 
						
							2011-04-11 21:49:50 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								ffd2e5163b 
								
							 
						 
						
							
							
								
								implement .cfi_adjust_cfa_offset.  
							
							 
							
							... 
							
							
							
							llvm-svn: 129296 
							
						 
						
							2011-04-11 20:29:16 +00:00  
						
					 
				
					
						
							
							
								 
								Kevin Enderby
							
						 
						
							 
							
							
							
							
								
							
							
								9377a52c12 
								
							 
						 
						
							
							
								
								Adding support for printing operands symbolically to llvm's public 'C'  
							
							 
							
							... 
							
							
							
							disassembler API.  Hooked this up to the ARM target so such tools as Darwin's
otool(1) can now print things like branch targets for example this:
  blx _puts
instead of this:
  blx #-36
And even print the expression encoded in the Mach-O relocation entried for
things like this:
  movt r0, :upper16:((_foo-_bar)+1234)
llvm-svn: 129284 
							
						 
						
							2011-04-11 18:08:50 +00:00  
						
					 
				
					
						
							
							
								 
								Benjamin Kramer
							
						 
						
							 
							
							
							
							
								
							
							
								26e7768f38 
								
							 
						 
						
							
							
								
								Fix potential buffer overflow on win32.  
							
							 
							
							... 
							
							
							
							llvm-svn: 129214 
							
						 
						
							2011-04-09 14:06:12 +00:00  
						
					 
				
					
						
							
							
								 
								Benjamin Kramer
							
						 
						
							 
							
							
							
							
								
							
							
								2b6c96b43d 
								
							 
						 
						
							
							
								
								Don't store Twine temporaries, it's not safe.  
							
							 
							
							... 
							
							
							
							And don't append the name over and over again in the loop.
llvm-svn: 129210 
							
						 
						
							2011-04-09 11:26:27 +00:00  
						
					 
				
					
						
							
							
								 
								Sean Callanan
							
						 
						
							 
							
							
							
							
								
							
							
								1426351c83 
								
							 
						 
						
							
							
								
								Redirected errors from the AsmParser to the proper  
							
							 
							
							... 
							
							
							
							error stream, in cases where the AsmParser is
being invoked by EDDisassembler.  Before, they
were being sent to errs() because no error handler
was installed in the SourceMgr.
llvm-svn: 129177 
							
						 
						
							2011-04-09 00:37:25 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								b80875edee 
								
							 
						 
						
							
							
								
								Micro optimization and improved similarity with gas' output:  
							
							 
							
							... 
							
							
							
							When two section names share a suffix, reuse the entry in shstrtab.
llvm-svn: 129115 
							
						 
						
							2011-04-07 23:21:52 +00:00  
						
					 
				
					
						
							
							
								 
								Rafael Espindola
							
						 
						
							 
							
							
							
							
								
							
							
								88bc341061 
								
							 
						 
						
							
							
								
								Add support for .skip.  
							
							 
							
							... 
							
							
							
							Patch by Roman Divacky.
Fixes PR9361.
llvm-svn: 129106 
							
						 
						
							2011-04-07 20:26:23 +00:00  
						
					 
				
					
						
							
							
								 
								Sean Callanan
							
						 
						
							 
							
							
							
							
								
							
							
								6c6be946fc 
								
							 
						 
						
							
							
								
								Fixed a bug where missing EDInstInfo would cause  
							
							 
							
							... 
							
							
							
							tokenization to crash and burn.
llvm-svn: 129051 
							
						 
						
							2011-04-07 01:56:01 +00:00  
						
					 
				
					
						
							
							
								 
								Shantonu Sen
							
						 
						
							 
							
							
							
							
								
							
							
								e59f8ca49e 
								
							 
						 
						
							
							
								
								An MCDisassembler has the option to not implement  
							
							 
							
							... 
							
							
							
							getEDInfo(), in which case this code would dereference
NULL. EDInst can already handle NULL info, so avoid
the dereference and pass NULL through.
Reviewed by Sean Callanan
llvm-svn: 128904 
							
						 
						
							2011-04-05 18:40:45 +00:00  
						
					 
				
					
						
							
							
								 
								Kevin Enderby
							
						 
						
							 
							
							
							
							
								
							
							
								5bbe957155 
								
							 
						 
						
							
							
								
								Added support symbolic floating point constants in the MC assembler for Infinity  
							
							 
							
							... 
							
							
							
							and Nans with the same strings as GAS supports.  rdar://8673024
llvm-svn: 128488 
							
						 
						
							2011-03-29 21:11:52 +00:00  
						
					 
				
					
						
							
							
								 
								Francois Pichet
							
						 
						
							 
							
							
							
							
								
							
							
								3cf622a832 
								
							 
						 
						
							
							
								
								Fix the MSVC build.  
							
							 
							
							... 
							
							
							
							llvm-svn: 128441 
							
						 
						
							2011-03-29 00:30:01 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								4ee0d03274 
								
							 
						 
						
							
							
								
								MC: Add support for disabling "temporary label" behavior. Useful for debugging  
							
							 
							
							... 
							
							
							
							on Darwin.
llvm-svn: 128430 
							
						 
						
							2011-03-28 22:49:15 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								2d45693446 
								
							 
						 
						
							
							
								
								Unbreak CMake build.  
							
							 
							
							... 
							
							
							
							llvm-svn: 128426 
							
						 
						
							2011-03-28 20:43:53 +00:00  
						
					 
				
					
						
							
							
								 
								Kevin Enderby
							
						 
						
							 
							
							
							
							
								
							
							
								f3070dc40d 
								
							 
						 
						
							
							
								
								Again adding a C API to the disassembler for use by such tools as Darwin's  
							
							 
							
							... 
							
							
							
							otool(1), this time with the needed fix for case sensitive file systems :) .
This is a work in progress as the interface for producing symbolic operands is
not done.  But a hacked prototype using information from the object file's
relocation entiries and replacing immediate operands with MCExpr's has been
shown to work with no changes to the instrucion printer.  These APIs will be
moved into a dynamic library at some point.
llvm-svn: 128415 
							
						 
						
							2011-03-28 18:25:07 +00:00  
						
					 
				
					
						
							
							
								 
								NAKAMURA Takumi
							
						 
						
							 
							
							
							
							
								
							
							
								af66980d8a 
								
							 
						 
						
							
							
								
								Fix whitespace.  
							
							 
							
							... 
							
							
							
							llvm-svn: 128370 
							
						 
						
							2011-03-27 01:44:40 +00:00  
						
					 
				
					
						
							
							
								 
								Kevin Enderby
							
						 
						
							 
							
							
							
							
								
							
							
								d077a857cc 
								
							 
						 
						
							
							
								
								Remove the files for r128308 as it is causing a buildbot failure.  
							
							 
							
							... 
							
							
							
							llvm-svn: 128309 
							
						 
						
							2011-03-26 00:23:05 +00:00  
						
					 
				
					
						
							
							
								 
								Kevin Enderby
							
						 
						
							 
							
							
							
							
								
							
							
								c8b4078654 
								
							 
						 
						
							
							
								
								Adding a C API to the disassembler for use by such tools as Darwin's otool(1).  
							
							 
							
							... 
							
							
							
							This is a work in progress as the interface for producing symbolic operands is
not done.  But a hacked prototype using information from the object file's
relocation entiries and replacing immediate operands with MCExpr's has been
shown to work with no changes to the instrucion printer.  These APIs will be
moved into a dynamic library at some point.
llvm-svn: 128308 
							
						 
						
							2011-03-26 00:06:33 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								6f4c9425eb 
								
							 
						 
						
							
							
								
								MC: Improve some diagnostics on uses of '.' pseudo-symbol.  
							
							 
							
							... 
							
							
							
							llvm-svn: 128289 
							
						 
						
							2011-03-25 17:47:17 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								3f56104be1 
								
							 
						 
						
							
							
								
								Tidyness.  
							
							 
							
							... 
							
							
							
							llvm-svn: 128288 
							
						 
						
							2011-03-25 17:47:14 +00:00  
						
					 
				
					
						
							
							
								 
								Bruno Cardoso Lopes
							
						 
						
							 
							
							
							
							
								
							
							
								f170f8bff6 
								
							 
						 
						
							
							
								
								Add asm parsing support w/ testcases for strex/ldrex family of instructions  
							
							 
							
							... 
							
							
							
							llvm-svn: 128236 
							
						 
						
							2011-03-24 21:04:58 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								a3df87fb01 
								
							 
						 
						
							
							
								
								Clean up assembly statement separator support.  
							
							 
							
							... 
							
							
							
							The MC asm lexer wasn't honoring a non-default (anything but ';') statement
separator. Fix that, and generalize a bit to support multi-character
statement separators.
llvm-svn: 128227 
							
						 
						
							2011-03-24 18:46:34 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								9746286bec 
								
							 
						 
						
							
							
								
								Add support for Thumb interworking addresses for symbol offsets that get constant folded very early.  
							
							 
							
							... 
							
							
							
							This fixes SPASS with -integrated-as.  <rdar://problem/9165399>
llvm-svn: 128037 
							
						 
						
							2011-03-21 23:13:43 +00:00