234e031e36 
								
							 
						 
						
							
							
								
								Pessmistically assume the .align 2 before the first constpool entry adds  
							
							... 
							
							
							
							two bytes padding.
llvm-svn: 33734 
							
						 
						
							2007-02-01 01:09:47 +00:00  
				
					
						
							
							
								 
						
							
								e5c19993cd 
								
							 
						 
						
							
							
								
								Handle an interesting corner case: the constpool_entry being reference is two  
							
							... 
							
							
							
							instructions away, i.e. its address is equal to PC.
        %r0 = tLDRpci <cp#0>
        bx
        CONSTPOOL_ENTRY 0 <cp#0>, 4
llvm-svn: 33728 
							
						 
						
							2007-01-31 23:35:18 +00:00  
				
					
						
							
							
								 
						
							
								1f3fc4b3f0 
								
							 
						 
						
							
							
								
								When determining whether a pc relative branch / load displacement fits in the  
							
							... 
							
							
							
							instruction field, adjust it for PC value (4 for thumb, 8 for arm).
llvm-svn: 33711 
							
						 
						
							2007-01-31 19:57:44 +00:00  
				
					
						
							
							
								 
						
							
								7169bd8784 
								
							 
						 
						
							
							
								
								Some comments.  
							
							... 
							
							
							
							llvm-svn: 33707 
							
						 
						
							2007-01-31 18:29:27 +00:00  
				
					
						
							
							
								 
						
							
								456928bbbc 
								
							 
						 
						
							
							
								
								ConstPool island bug: watch out for cases where UserMI is the last MI of the BB.  
							
							... 
							
							
							
							llvm-svn: 33706 
							
						 
						
							2007-01-31 18:19:07 +00:00  
				
					
						
							
							
								 
						
							
								345877e77c 
								
							 
						 
						
							
							
								
								- Added Thumb constpool island support.  
							
							... 
							
							
							
							- Islands are inserted right after the user MI since thumb LDR cannot encode
  negative offset.
llvm-svn: 33690 
							
						 
						
							2007-01-31 02:22:22 +00:00  
				
					
						
							
							
								 
						
							
								7fa6964dc2 
								
							 
						 
						
							
							
								
								- In thumb mode, if size of MachineFunction is >= 2048, force LR to be  
							
							... 
							
							
							
							spilled (if it is not already).
- If LR is spilled, use BL to implement far jumps. LR is not used as a GPR
  in thumb mode so it can be clobbered if it is properly spilled / restored
  in prologue / epilogue.
- If LR is force spilled but no far jump has been emitted, try undo'ing the
  spill by:
  push lr -> delete
  pop pc -> bx lr
llvm-svn: 33650 
							
						 
						
							2007-01-30 01:18:38 +00:00  
				
					
						
							
							
								 
						
							
								760c68b8af 
								
							 
						 
						
							
							
								
								Factor GetInstSize() out of constpool island pass.  
							
							... 
							
							
							
							llvm-svn: 33644 
							
						 
						
							2007-01-29 23:45:17 +00:00  
				
					
						
							
							
								 
						
							
								0701c5a074 
								
							 
						 
						
							
							
								
								Thumb jumptable support.  
							
							... 
							
							
							
							llvm-svn: 33568 
							
						 
						
							2007-01-27 02:29:45 +00:00  
				
					
						
							
							
								 
						
							
								3c9dc6bd46 
								
							 
						 
						
							
							
								
								Conditional branch being fixed up is not the last MI in the BB, there is a  
							
							... 
							
							
							
							unconditional branch following it. Simply invert the condition and swap
destinations if the conditional branch can reach the destination of the
unconditional branch:
beq L1
b   L2
=>
bne L2
b   L1
llvm-svn: 33548 
							
						 
						
							2007-01-26 20:38:26 +00:00  
				
					
						
							
							
								 
						
							
								f9e5445ed4 
								
							 
						 
						
							
							
								
								Make LABEL a builtin opcode.  
							
							... 
							
							
							
							llvm-svn: 33537 
							
						 
						
							2007-01-26 14:34:52 +00:00  
				
					
						
							
							
								 
						
							
								1e270b639d 
								
							 
						 
						
							
							
								
								SplitBlockBeforeInstr() insert a unconditional branch to the next BB. This  
							
							... 
							
							
							
							is unnecessary when we are fixing up a conditional branch since we will be
adding a unconditional branch to the destination of the original branch.
llvm-svn: 33517 
							
						 
						
							2007-01-26 02:02:39 +00:00  
				
					
						
							
							
								 
						
							
								db7f0591f3 
								
							 
						 
						
							
							
								
								Need to scan the function for branches even if there aren't any constants.  
							
							... 
							
							
							
							llvm-svn: 33515 
							
						 
						
							2007-01-26 01:04:44 +00:00  
				
					
						
							
							
								 
						
							
								1d138989f4 
								
							 
						 
						
							
							
								
								Forgot to update this.  
							
							... 
							
							
							
							llvm-svn: 33512 
							
						 
						
							2007-01-25 23:31:04 +00:00  
				
					
						
							
							
								 
						
							
								010ae386b8 
								
							 
						 
						
							
							
								
								Add comment, fix typo, reduce memory usage, etc.  
							
							... 
							
							
							
							llvm-svn: 33510 
							
						 
						
							2007-01-25 23:18:59 +00:00  
				
					
						
							
							
								 
						
							
								417260dc11 
								
							 
						 
						
							
							
								
								Doh. Skip JT branches.  
							
							... 
							
							
							
							llvm-svn: 33501 
							
						 
						
							2007-01-25 19:43:52 +00:00  
				
					
						
							
							
								 
						
							
								22c7cf504e 
								
							 
						 
						
							
							
								
								Added (preliminary) branch shortening capability to constantpool island pass.  
							
							... 
							
							
							
							llvm-svn: 33497 
							
						 
						
							2007-01-25 03:12:46 +00:00  
				
					
						
							
							
								 
						
							
								1526ba50d9 
								
							 
						 
						
							
							
								
								Use PC relative ldr to load from a constantpool in Thumb mode.  
							
							... 
							
							
							
							llvm-svn: 33484 
							
						 
						
							2007-01-24 08:53:17 +00:00  
				
					
						
							
							
								 
						
							
								10043e215b 
								
							 
						 
						
							
							
								
								ARM backend contribution from Apple.  
							
							... 
							
							
							
							llvm-svn: 33353 
							
						 
						
							2007-01-19 07:51:42 +00:00