Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								9a4d42855d 
								
							 
						 
						
							
							
								
								Revert r121721, which broke buildbots.  
							
							 
							
							... 
							
							
							
							llvm-svn: 121726 
							
						 
						
							2010-12-13 22:51:08 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								4efa445f3c 
								
							 
						 
						
							
							
								
								Make Thumb2 LEA-like instruction into pseudos, which map down to ADR.  Provide correct fixups for Thumb2 ADR,  
							
							 
							
							... 
							
							
							
							which is _of course_ different from ARM ADR fixups, or any other Thumb2 fixup.
llvm-svn: 121721 
							
						 
						
							2010-12-13 22:29:52 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								578074b2f3 
								
							 
						 
						
							
							
								
								In Thumb2, direct branches can be encoded as either a "short" conditional branch with a null predicate, or  
							
							 
							
							... 
							
							
							
							as a "long" direct branch.  While the mnemonics are the same, they encode the branch offset differently, and
the Darwin assembler appears to prefer the "long" form for direct branches.  Thus, in the name of bitwise
equivalence, provide encoding and fixup support for it.
llvm-svn: 121710 
							
						 
						
							2010-12-13 19:31:11 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								b0fa127f60 
								
							 
						 
						
							
							
								
								Fix encoding of Thumb1 LDRB and STRB.  
							
							 
							
							... 
							
							
							
							llvm-svn: 121581 
							
						 
						
							2010-12-10 22:11:13 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								e119da1146 
								
							 
						 
						
							
							
								
								Thumb unconditional branch binary encoding. rdar://8754994  
							
							 
							
							... 
							
							
							
							llvm-svn: 121496 
							
						 
						
							2010-12-10 18:21:33 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								78485ad65e 
								
							 
						 
						
							
							
								
								Thumb conditional branch binary encodings. rdar://8745367  
							
							 
							
							... 
							
							
							
							llvm-svn: 121493 
							
						 
						
							2010-12-10 17:13:40 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								0c4838bab7 
								
							 
						 
						
							
							
								
								Thumb ldr reg+imm offsets were encoded incorrectly. The scaling factor of the  
							
							 
							
							... 
							
							
							
							t_addrmode_s# address modes is used for ASM printing, not for encoding.
<rdar://problem/8745375>
llvm-svn: 121417 
							
						 
						
							2010-12-09 21:49:07 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								62b68112da 
								
							 
						 
						
							
							
								
								Rename the encoder method for t_cbtarget to match.  
							
							 
							
							... 
							
							
							
							llvm-svn: 121399 
							
						 
						
							2010-12-09 19:04:53 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								3392bfc8f3 
								
							 
						 
						
							
							
								
								The BLX instruction is encoded differently than the BL, because why not? In  
							
							 
							
							... 
							
							
							
							particular, the immediate has 20-bits of value instead of 21. And bit 0 is '0'
always. Going through the BL fixup encoding was trashing the "bit 0 is '0'"
invariant.
Attempt to get the encoding at slightly more correct with this.
llvm-svn: 121336 
							
						 
						
							2010-12-09 00:39:08 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								a7d6aa902a 
								
							 
						 
						
							
							
								
								Support the "target" encodings for the CB[N]Z instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 121308 
							
						 
						
							2010-12-08 23:01:43 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								8a6449c46e 
								
							 
						 
						
							
							
								
								Add support for loading from a constant pool.  
							
							 
							
							... 
							
							
							
							llvm-svn: 121226 
							
						 
						
							2010-12-08 01:57:09 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								49bcd6ff85 
								
							 
						 
						
							
							
								
								Binary encoding for ARM tLDRspi and tSTRspi.  
							
							 
							
							... 
							
							
							
							llvm-svn: 121186 
							
						 
						
							2010-12-07 21:50:47 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								9e1994698d 
								
							 
						 
						
							
							
								
								Add fixup for Thumb1 BL/BLX instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 121072 
							
						 
						
							2010-12-06 23:57:07 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								87240d4b9c 
								
							 
						 
						
							
							
								
								Add a post encoder method to the VFP instructions to convert them to the Thumb2  
							
							 
							
							... 
							
							
							
							encoding if we're in that mode.
llvm-svn: 120608 
							
						 
						
							2010-12-01 21:54:50 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								dc35e067c1 
								
							 
						 
						
							
							
								
								Refactor LEApcrelJT as a pseudo-instructionlowered to a cannonical ADR  
							
							 
							
							... 
							
							
							
							instruction at MC lowering. Add binary encoding information for the ADR,
including fixup data for the label operand.
llvm-svn: 120594 
							
						 
						
							2010-12-01 19:47:31 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								943fb60b1f 
								
							 
						 
						
							
							
								
								Add correct encodings for STRD and LDRD, including fixup support.  Additionally, update these to unified syntax.  
							
							 
							
							... 
							
							
							
							llvm-svn: 120589 
							
						 
						
							2010-12-01 19:18:46 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								a9e3df7aa0 
								
							 
						 
						
							
							
								
								* Add support for encoding t_addrmode_s2 and t_addrmode_s1. They are the same as  
							
							 
							
							... 
							
							
							
							t_addrmode_s4, but with a different scaling factor.
* Encode the Thumb1 load and store instructions. This involved a bit of
  refactoring (hi, Chris! :-). Some of the patterns became dead afterwards and
  were removed.
llvm-svn: 120482 
							
						 
						
							2010-11-30 22:57:21 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								299382e8cb 
								
							 
						 
						
							
							
								
								Add encoding support for Thumb2 PLD and PLI instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 120449 
							
						 
						
							2010-11-30 19:19:31 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								811c936ed5 
								
							 
						 
						
							
							
								
								Add parsing for the Thumb t_addrmode_s4 addressing mode. This can almost  
							
							 
							
							... 
							
							
							
							certainly be made more generic. But it does allow us to parse something like:
          ldr     r3, [r2, r4]
correctly in Thumb mode.
llvm-svn: 120408 
							
						 
						
							2010-11-30 07:44:32 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								027bd47e3e 
								
							 
						 
						
							
							
								
								Rename BX/BRIND/etc patterns to clarify which is actually the BX instruction  
							
							 
							
							... 
							
							
							
							and which are pseudos.
llvm-svn: 120366 
							
						 
						
							2010-11-30 00:24:05 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								e22c7322b8 
								
							 
						 
						
							
							
								
								Correct Thumb2 encodings for a much wider range of loads and stores.  
							
							 
							
							... 
							
							
							
							llvm-svn: 120364 
							
						 
						
							2010-11-30 00:14:31 +00:00  
						
					 
				
					
						
							
							
								 
								Bob Wilson
							
						 
						
							 
							
							
							
							
								
							
							
								318ce7cb3f 
								
							 
						 
						
							
							
								
								Fix the encoding of VLD4-dup alignment.  
							
							 
							
							... 
							
							
							
							The only reasonable way I could find to do this is to provide an alternate
version of the addrmode6 operand with a different encoding function.  Use it
for all the VLD-dup instructions for the sake of consistency.
llvm-svn: 120358 
							
						 
						
							2010-11-30 00:00:42 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								50d662b6cb 
								
							 
						 
						
							
							
								
								Provide Thumb2 encodings for basic loads and stores.  
							
							 
							
							... 
							
							
							
							llvm-svn: 120340 
							
						 
						
							2010-11-29 22:44:32 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								0914d44fa4 
								
							 
						 
						
							
							
								
								Have the getAddrMode3OpValue() function in ARMCodeEmitter.cpp produce the same  
							
							 
							
							... 
							
							
							
							value that the one in ARMMCCodeEmitter.cpp does.
llvm-svn: 119878 
							
						 
						
							2010-11-20 00:26:37 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								2aeb8b9361 
								
							 
						 
						
							
							
								
								Minor cleanups to a few llvm_unreachable() calls.  
							
							 
							
							... 
							
							
							
							llvm-svn: 119767 
							
						 
						
							2010-11-19 00:27:09 +00:00  
						
					 
				
					
						
							
							
								 
								Jason W Kim
							
						 
						
							 
							
							
							
							
								
							
							
								5a97bd873e 
								
							 
						 
						
							
							
								
								Fix .o emission of ARM movt/movw. MCSymbolRefExpr::VK_ARM_(HI||LO)16 for the .o path now works for ARM.  
							
							 
							
							... 
							
							
							
							Note: lo16AllZero remains in ARMInstrInfo.td - It can be factored out when Thumb movt is repaired.
Existing tests cover this update.
llvm-svn: 119760 
							
						 
						
							2010-11-18 23:37:15 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								56f471726c 
								
							 
						 
						
							
							
								
								Clean up LEApcrel instuction(s) a bit. It's not really a Pseudo, so don't mark  
							
							 
							
							... 
							
							
							
							it as such. Add some encoding information.
llvm-svn: 119588 
							
						 
						
							2010-11-17 23:33:14 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								4ded8f264a 
								
							 
						 
						
							
							
								
								Fix comment typo.  
							
							 
							
							... 
							
							
							
							llvm-svn: 119573 
							
						 
						
							2010-11-17 21:57:51 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								b100f91754 
								
							 
						 
						
							
							
								
								The machine instruction no longer encodes the submode as a separate operand. We  
							
							 
							
							... 
							
							
							
							should get the submode from the load/store multiple instruction's opcode.
llvm-svn: 119461 
							
						 
						
							2010-11-17 05:31:09 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								38b469effd 
								
							 
						 
						
							
							
								
								ARM LDR_PRE/LDR_POST/STR_PRE/STR_POST (and the *B counterparts) binary encoding.  
							
							 
							
							... 
							
							
							
							llvm-svn: 119180 
							
						 
						
							2010-11-15 20:47:07 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								f478cf9685 
								
							 
						 
						
							
							
								
								Eliminate ARM::MOVi2pieces. Just use MOVi32imm and expand it to either movi+orr or movw+movt depending on the subtarget.  
							
							 
							
							... 
							
							
							
							llvm-svn: 118938 
							
						 
						
							2010-11-12 23:03:38 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								8fdd172502 
								
							 
						 
						
							
							
								
								First stab at providing correct Thumb2 encodings, start with adc.  
							
							 
							
							... 
							
							
							
							llvm-svn: 118924 
							
						 
						
							2010-11-12 21:12:40 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								ce2250fba4 
								
							 
						 
						
							
							
								
								Fill out support for Thumb2 encodings of NEON instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 118854 
							
						 
						
							2010-11-11 23:12:55 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								99a8cb4875 
								
							 
						 
						
							
							
								
								Add correct Thumb2 encodings for NEON vst[1,2,3,4] and vld[1,2,3,4].  
							
							 
							
							... 
							
							
							
							llvm-svn: 118843 
							
						 
						
							2010-11-11 21:36:43 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								7ffe3b35ac 
								
							 
						 
						
							
							
								
								Add support for Thumb2 encodings of NEON data processing instructions, using the new PostEncoderMethod infrastructure.  
							
							 
							
							... 
							
							
							
							More tests to come.
llvm-svn: 118819 
							
						 
						
							2010-11-11 19:07:48 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								9d6d77a9f4 
								
							 
						 
						
							
							
								
								Encoding of destination fixup for ARM branch and conditional branch  
							
							 
							
							... 
							
							
							
							instructions.
llvm-svn: 118801 
							
						 
						
							2010-11-11 18:04:49 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								68685e644f 
								
							 
						 
						
							
							
								
								Encoding for ARM LDRSH_POST.  
							
							 
							
							... 
							
							
							
							llvm-svn: 118794 
							
						 
						
							2010-11-11 16:55:29 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								607efcbc3e 
								
							 
						 
						
							
							
								
								ARM STRH encoding information.  
							
							 
							
							... 
							
							
							
							llvm-svn: 118757 
							
						 
						
							2010-11-11 01:09:40 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								cc4a491557 
								
							 
						 
						
							
							
								
								ARM LDM encoding for the mode (ia, ib, da, db) operand.  
							
							 
							
							... 
							
							
							
							llvm-svn: 118736 
							
						 
						
							2010-11-10 23:38:36 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								dbfb5edbdb 
								
							 
						 
						
							
							
								
								Add encoder method for ARM load/store shifted register offset operands.  
							
							 
							
							... 
							
							
							
							llvm-svn: 118513 
							
						 
						
							2010-11-09 17:20:53 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								e84eb99cbb 
								
							 
						 
						
							
							
								
								The MC code couldn't handle ARM LDR instructions with negative offsets:  
							
							 
							
							... 
							
							
							
							vldr.64 d1, [r0, #-32]
The problem was with how the addressing mode 5 encodes the offsets. This change
makes sure that the way offsets are handled in addressing mode 5 is consistent
throughout the MC code. It involves re-refactoring the "getAddrModeImmOpValue"
method into an "Imm12" and "addressing mode 5" version. But not to worry! The
majority of the duplicated code has been unified.
llvm-svn: 118144 
							
						 
						
							2010-11-03 01:49:29 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								603bd8f54c 
								
							 
						 
						
							
							
								
								Rename getAddrModeImm12OpValue to getAddrModeImmOpValue and expand it to work  
							
							 
							
							... 
							
							
							
							with immediates up to 16-bits in size. The same logic is applied to other LDR
encodings, e.g. VLDR, but which use a different immediate bit width (8-bits in
VLDR's case). Removing the "12" allows it to be more generic.
llvm-svn: 118094 
							
						 
						
							2010-11-02 22:31:46 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a4b63e19d2 
								
							 
						 
						
							
							
								
								Rename encoder methods to match naming convention.  
							
							 
							
							... 
							
							
							
							llvm-svn: 118093 
							
						 
						
							2010-11-02 22:28:01 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								526ffd57d2 
								
							 
						 
						
							
							
								
								Add correct NEON encodings for vld2, vld3, and vld4 basic variants.  
							
							 
							
							... 
							
							
							
							llvm-svn: 117997 
							
						 
						
							2010-11-02 01:24:55 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								ad40234eff 
								
							 
						 
						
							
							
								
								Add correct NEON encodings for the "multiple single elements" form of vld.  
							
							 
							
							... 
							
							
							
							llvm-svn: 117984 
							
						 
						
							2010-11-02 00:05:05 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								74ef9e184e 
								
							 
						 
						
							
							
								
								Encode the register list operands for ARM mode LDM/STM instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 117753 
							
						 
						
							2010-10-30 00:37:59 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								5f0d616ae5 
								
							 
						 
						
							
							
								
								80 column fix.  
							
							 
							
							... 
							
							
							
							llvm-svn: 117741 
							
						 
						
							2010-10-29 23:21:57 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								58018e62a8 
								
							 
						 
						
							
							
								
								s/getNEONVcvtImm32/getNEONVcvtImm32OpValue/ to be consistent with other operand  
							
							 
							
							... 
							
							
							
							encoder functions.
llvm-svn: 117738 
							
						 
						
							2010-10-29 23:19:55 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								338de3ee56 
								
							 
						 
						
							
							
								
								Refactor ARM STR/STRB instruction patterns into STR{B}i12 and STR{B}rs, like  
							
							 
							
							... 
							
							
							
							the LDR instructions have. This makes the literal/register forms of the
instructions explicit and allows us to assign scheduling itineraries
appropriately. rdar://8477752
llvm-svn: 117505 
							
						 
						
							2010-10-27 23:12:14 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								fadb951e5b 
								
							 
						 
						
							
							
								
								Provide correct encodings for NEON vcvt, which has its own special immediate encoding  
							
							 
							
							... 
							
							
							
							for specifying fractional bits for fixed point conversions.
llvm-svn: 117501 
							
						 
						
							2010-10-27 22:49:00 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								f4ea7084c5 
								
							 
						 
						
							
							
								
								JIT imm12 encoding for constant pool entry references.  
							
							 
							
							... 
							
							
							
							llvm-svn: 117483 
							
						 
						
							2010-10-27 20:39:40 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								333b0a9e74 
								
							 
						 
						
							
							
								
								ARM JIT fix for LDRi12 and company.  
							
							 
							
							... 
							
							
							
							llvm-svn: 117478 
							
						 
						
							2010-10-27 19:55:59 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								ba1c6cd62f 
								
							 
						 
						
							
							
								
								The new LDR* instruction patterns should handle the necessary encoding of  
							
							 
							
							... 
							
							
							
							operands in the TableGen'erated bits, so we don't need to do the additional
magic explicitly.
llvm-svn: 117461 
							
						 
						
							2010-10-27 17:52:51 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								1e4d9a17c2 
								
							 
						 
						
							
							
								
								First part of refactoring ARM addrmode2 (load/store) instructions to be more  
							
							 
							
							... 
							
							
							
							explicit about the operands. Split out the different variants into separate
instructions. This gives us the ability to, among other things, assign
different scheduling itineraries to the variants. rdar://8477752.
llvm-svn: 117409 
							
						 
						
							2010-10-26 22:37:02 +00:00  
						
					 
				
					
						
							
							
								 
								Gabor Greif
							
						 
						
							 
							
							
							
							
								
							
							
								b171ca0a47 
								
							 
						 
						
							
							
								
								fix memory-layout assumption which only holds on little-endian systems  
							
							 
							
							... 
							
							
							
							llvm-svn: 117176 
							
						 
						
							2010-10-22 23:16:11 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								5edb03ee57 
								
							 
						 
						
							
							
								
								ARM Binary encoding information for BFC/BFI instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 117072 
							
						 
						
							2010-10-21 22:03:21 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								058190507b 
								
							 
						 
						
							
							
								
								Add encodings for movement between ARM core registers and single-precision  
							
							 
							
							... 
							
							
							
							registers.
llvm-svn: 116961 
							
						 
						
							2010-10-20 22:44:54 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								5f5b922ec6 
								
							 
						 
						
							
							
								
								ARMCodeEmitter::emitMiscInstruction is dead. Long live  
							
							 
							
							... 
							
							
							
							ARMCodeEmitter::emitMiscInstruction!
llvm-svn: 116644 
							
						 
						
							2010-10-15 23:35:12 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								68a335e185 
								
							 
						 
						
							
							
								
								ARM mode encoding information for UBFX and SBFX instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 116588 
							
						 
						
							2010-10-15 17:15:16 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								062749cb25 
								
							 
						 
						
							
							
								
								Tweak the ARM backend to use the RRX mnemonic instead of the 'mov a, b, rrx'  
							
							 
							
							... 
							
							
							
							pseudonym.
llvm-svn: 116512 
							
						 
						
							2010-10-14 20:43:44 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								0441c6cba0 
								
							 
						 
						
							
							
								
								Add encoding for 'fmstat'.  
							
							 
							
							... 
							
							
							
							llvm-svn: 116466 
							
						 
						
							2010-10-14 01:19:34 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								0825f3e441 
								
							 
						 
						
							
							
								
								- Add encodings for multiply add/subtract instructions in all their glory.  
							
							 
							
							... 
							
							
							
							- Add missing patterns for some multiply add/subtract instructions.
- Add encodings for VMRS and VMSR.
llvm-svn: 116464 
							
						 
						
							2010-10-14 01:02:08 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								1e7db68774 
								
							 
						 
						
							
							
								
								Add ARM mode encoding for [SU]XT[BH] and [SU]XTA[BH] instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 116421 
							
						 
						
							2010-10-13 19:56:10 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								efd5369749 
								
							 
						 
						
							
							
								
								Add the rest of the ARM so_reg encoding options (register shifted register)  
							
							 
							
							... 
							
							
							
							and move to a custom operand encoder. Remove the last of the special handling
stuff from ARMMCCodeEmitter::EncodeInstruction.
llvm-svn: 116377 
							
						 
						
							2010-10-12 23:53:58 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								12e493ace4 
								
							 
						 
						
							
							
								
								Move the ARM so_imm encoding into a custom operand encoder and remove the  
							
							 
							
							... 
							
							
							
							explicit handling of the instructions referencing it from the MC code
emitter.
llvm-svn: 116367 
							
						 
						
							2010-10-12 23:18:08 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								d9d31dafda 
								
							 
						 
						
							
							
								
								Add custom encoder for the 's' bit denoting whether an ARM arithmetic  
							
							 
							
							... 
							
							
							
							instruction should set the processor status flags or not. Remove the now
unnecessary special handling for the bit from the MCCodeEmitter.
llvm-svn: 116360 
							
						 
						
							2010-10-12 23:00:24 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								b770c00610 
								
							 
						 
						
							
							
								
								Reapply 116059, this time without the fatfingered pasto at the top.  
							
							 
							
							... 
							
							
							
							''const'ify getMachineOpValue() and associated helpers.'
llvm-svn: 116067 
							
						 
						
							2010-10-08 17:45:54 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								00351b7731 
								
							 
						 
						
							
							
								
								Reverting 116059. Bots are unhappy with it.  
							
							 
							
							... 
							
							
							
							llvm-svn: 116064 
							
						 
						
							2010-10-08 17:28:40 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								e2d30cd4b5 
								
							 
						 
						
							
							
								
								'const'ify getMachineOpValue() and associated helpers.  
							
							 
							
							... 
							
							
							
							llvm-svn: 116059 
							
						 
						
							2010-10-08 16:52:44 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								a7b6d58f45 
								
							 
						 
						
							
							
								
								Make <target>CodeEmitter::getBinaryCodeForInstr() a const method.  
							
							 
							
							... 
							
							
							
							llvm-svn: 116018 
							
						 
						
							2010-10-08 00:21:28 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								40e85fbf17 
								
							 
						 
						
							
							
								
								move getRegisterNumbering() to out of ARMBaseRegisterInfo into the helper  
							
							 
							
							... 
							
							
							
							functions in ARMBaseInfo.h so it can be used in the MC library as well.
For anything bigger than this, we may want a means to have a small support
library for shared helper functions like this. Cross that bridge when we
come to it.
llvm-svn: 114016 
							
						 
						
							2010-09-15 20:26:25 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								789ca9a1e9 
								
							 
						 
						
							
							
								
								Refactor uses of getRegisterNumbering() to not need the isSPVFP argument. Check  
							
							 
							
							... 
							
							
							
							if the register is a member of the SPR register class directly instead.
llvm-svn: 114012 
							
						 
						
							2010-09-15 19:44:57 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								65b48b5dfc 
								
							 
						 
						
							
							
								
								zap dead code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 113073 
							
						 
						
							2010-09-04 18:12:00 +00:00  
						
					 
				
					
						
							
							
								 
								Bob Wilson
							
						 
						
							 
							
							
							
							
								
							
							
								13ce07fa92 
								
							 
						 
						
							
							
								
								Change ARM VFP VLDM/VSTM instructions to use addressing mode  #4 , just like  
							
							 
							
							... 
							
							
							
							all the other LDM/STM instructions.  This fixes asm printer crashes when
compiling with -O0.  I've changed one of the NEON tests (vst3.ll) to run
with -O0 to check this in the future.
Prior to this change VLDM/VSTM used addressing mode #5 , but not really.
The offset field was used to hold a count of the number of registers being
loaded or stored, and the AM5 opcode field was expanded to specify the IA
or DB mode, instead of the standard ADD/SUB specifier.  Much of the backend
was not aware of these special cases.  The crashes occured when rewriting
a frameindex caused the AM5 offset field to be changed so that it did not
have a valid submode.  I don't know exactly what changed to expose this now.
Maybe we've never done much with -O0 and NEON.  Regardless, there's no longer
any reason to keep a count of the VLDM/VSTM registers, so we can use
addressing mode #4  and clean things up in a lot of places.
llvm-svn: 112322 
							
						 
						
							2010-08-27 23:18:17 +00:00  
						
					 
				
					
						
							
							
								 
								Bob Wilson
							
						 
						
							 
							
							
							
							
								
							
							
								942b10f511 
								
							 
						 
						
							
							
								
								Change ARM PKHTB and PKHBT instructions to use a shift_imm operand to avoid  
							
							 
							
							... 
							
							
							
							printing "lsl #0".  This fixes the remaining parts of pr7792.  Make
corresponding changes for encoding/decoding these instructions.
llvm-svn: 111251 
							
						 
						
							2010-08-17 17:23:19 +00:00  
						
					 
				
					
						
							
							
								 
								Bob Wilson
							
						 
						
							 
							
							
							
							
								
							
							
								add513112a 
								
							 
						 
						
							
							
								
								Move the ARM SSAT and USAT optional shift amount operand out of the  
							
							 
							
							... 
							
							
							
							instruction opcode.  This also fixes part of PR7792.
llvm-svn: 110875 
							
						 
						
							2010-08-11 23:10:46 +00:00  
						
					 
				
					
						
							
							
								 
								Bob Wilson
							
						 
						
							 
							
							
							
							
								
							
							
								9664984be8 
								
							 
						 
						
							
							
								
								Add a separate ARM instruction format for Saturate instructions.  
							
							 
							
							... 
							
							
							
							(I discovered 2 more copies of the ARM instruction format list, bringing the
total to 4!!  Two of them were already out of sync.  I haven't yet gotten into
the disassembler enough to know the best way to fix this, but something needs
to be done.)  Add support for encoding these instructions.
llvm-svn: 110754 
							
						 
						
							2010-08-11 00:01:18 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a7aed18624 
								
							 
						 
						
							
							
								
								Reapply r110396, with fixes to appease the Linux buildbot gods.  
							
							 
							
							... 
							
							
							
							llvm-svn: 110460 
							
						 
						
							2010-08-06 18:33:48 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								bda59bd247 
								
							 
						 
						
							
							
								
								Revert r110396 to fix buildbots.  
							
							 
							
							... 
							
							
							
							llvm-svn: 110410 
							
						 
						
							2010-08-06 00:23:35 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								755aceb5d0 
								
							 
						 
						
							
							
								
								Don't use PassInfo* as a type identifier for passes.  Instead, use the address of the static  
							
							 
							
							... 
							
							
							
							ID member as the sole unique type identifier.  Clean up APIs related to this change.
llvm-svn: 110396 
							
						 
						
							2010-08-05 23:42:04 +00:00  
						
					 
				
					
						
							
							
								 
								Xerxes Ranby
							
						 
						
							 
							
							
							
							
								
							
							
								ff66cd43c4 
								
							 
						 
						
							
							
								
								ARMv4 JIT forgets to set the lr register when making a indirect function call. Fixes PR7608  
							
							 
							
							... 
							
							
							
							llvm-svn: 109125 
							
						 
						
							2010-07-22 17:28:34 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								499f797cdd 
								
							 
						 
						
							
							
								
								Rename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission and  
							
							 
							
							... 
							
							
							
							thus is a much more meaningful name.
llvm-svn: 108563 
							
						 
						
							2010-07-16 22:20:36 +00:00  
						
					 
				
					
						
							
							
								 
								Bob Wilson
							
						 
						
							 
							
							
							
							
								
							
							
								be157b0ea8 
								
							 
						 
						
							
							
								
								Add support for encoding VDUP (ARM core register) instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 107201 
							
						 
						
							2010-06-29 20:13:29 +00:00  
						
					 
				
					
						
							
							
								 
								Bob Wilson
							
						 
						
							 
							
							
							
							
								
							
							
								ab0819e10d 
								
							 
						 
						
							
							
								
								Add support for encoding NEON VMOV (from core register to scalar) instructions.  
							
							 
							
							... 
							
							
							
							The encoding is the same as VMOV (from scalar to core register) except that
the operands are in different places.
llvm-svn: 107167 
							
						 
						
							2010-06-29 17:34:07 +00:00  
						
					 
				
					
						
							
							
								 
								Bob Wilson
							
						 
						
							 
							
							
							
							
								
							
							
								3d12ff797b 
								
							 
						 
						
							
							
								
								Fix Thumb encoding of VMOV (scalar to ARM core register).  The encoding is  
							
							 
							
							... 
							
							
							
							the same as ARM except that the condition code field is always set to ARMCC::AL.
llvm-svn: 107107 
							
						 
						
							2010-06-29 00:26:13 +00:00  
						
					 
				
					
						
							
							
								 
								Bob Wilson
							
						 
						
							 
							
							
							
							
								
							
							
								4469a892b4 
								
							 
						 
						
							
							
								
								Make the ARMCodeEmitter identify Thumb functions via ARMFunctionInfo instead  
							
							 
							
							... 
							
							
							
							of the Subtarget.
llvm-svn: 107086 
							
						 
						
							2010-06-28 22:23:17 +00:00  
						
					 
				
					
						
							
							
								 
								Bob Wilson
							
						 
						
							 
							
							
							
							
								
							
							
								544317dfda 
								
							 
						 
						
							
							
								
								Refactor encoding function for NEON 1-register with modified immediate format.  
							
							 
							
							... 
							
							
							
							llvm-svn: 107070 
							
						 
						
							2010-06-28 21:16:30 +00:00  
						
					 
				
					
						
							
							
								 
								Bob Wilson
							
						 
						
							 
							
							
							
							
								
							
							
								584387d5e3 
								
							 
						 
						
							
							
								
								Support Thumb mode encoding of NEON instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 107068 
							
						 
						
							2010-06-28 21:12:19 +00:00  
						
					 
				
					
						
							
							
								 
								Bob Wilson
							
						 
						
							 
							
							
							
							
								
							
							
								0248da9db4 
								
							 
						 
						
							
							
								
								Add support for encoding NEON VMOV (from scalar to core register) instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 106938 
							
						 
						
							2010-06-26 04:07:15 +00:00  
						
					 
				
					
						
							
							
								 
								Bob Wilson
							
						 
						
							 
							
							
							
							
								
							
							
								2530ca0647 
								
							 
						 
						
							
							
								
								Add support for encoding 3-register NEON instructions, and fix  
							
							 
							
							... 
							
							
							
							emitNEON2RegInstruction's handling of 2-address operands.
llvm-svn: 106900 
							
						 
						
							2010-06-25 22:40:46 +00:00  
						
					 
				
					
						
							
							
								 
								Bob Wilson
							
						 
						
							 
							
							
							
							
								
							
							
								e70c8b150b 
								
							 
						 
						
							
							
								
								Add support for encoding 2-register NEON instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 106891 
							
						 
						
							2010-06-25 21:17:19 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								d2d1ae105d 
								
							 
						 
						
							
							
								
								Use pre-increment instead of post-increment when the result is not used.  
							
							 
							
							... 
							
							
							
							llvm-svn: 106542 
							
						 
						
							2010-06-22 15:08:57 +00:00  
						
					 
				
					
						
							
							
								 
								Bob Wilson
							
						 
						
							 
							
							
							
							
								
							
							
								6eae520de9 
								
							 
						 
						
							
							
								
								Add instruction encoding for the Neon VMOV immediate instruction.  This changes  
							
							 
							
							... 
							
							
							
							the machine instruction representation of the immediate value to be encoded
into an integer with similar fields as the actual VMOV instruction.  This makes
things easier for the disassembler, since it can just stuff the bits into the
immediate operand, but harder for the asm printer since it has to decode the
value to be printed.  Testcase for the encoding will follow later when MC has
more support for ARM.
llvm-svn: 105836 
							
						 
						
							2010-06-11 21:34:50 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								84511e1526 
								
							 
						 
						
							
							
								
								Clean up 80 column violations. No functional change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 105350 
							
						 
						
							2010-06-02 21:53:11 +00:00  
						
					 
				
					
						
							
							
								 
								Shih-wei Liao
							
						 
						
							 
							
							
							
							
								
							
							
								c4376b9b1b 
								
							 
						 
						
							
							
								
								Coding style change (Adding 1 missing space.)  
							
							 
							
							... 
							
							
							
							llvm-svn: 104670 
							
						 
						
							2010-05-26 04:46:50 +00:00  
						
					 
				
					
						
							
							
								 
								Shih-wei Liao
							
						 
						
							 
							
							
							
							
								
							
							
								0568ca0ddc 
								
							 
						 
						
							
							
								
								Adding the missing implementation for ARM::SBFX and ARM::UBFX.  
							
							 
							
							... 
							
							
							
							Fixing http://llvm.org/bugs/show_bug.cgi?id=7225 .
llvm-svn: 104667 
							
						 
						
							2010-05-26 03:21:39 +00:00  
						
					 
				
					
						
							
							
								 
								Shih-wei Liao
							
						 
						
							 
							
							
							
							
								
							
							
								b6e0bc9457 
								
							 
						 
						
							
							
								
								Adding the missing implementation of Bitfield's "clear" and "insert".  
							
							 
							
							... 
							
							
							
							Fixing http://llvm.org/bugs/show_bug.cgi?id=7222 .
llvm-svn: 104653 
							
						 
						
							2010-05-26 00:25:05 +00:00  
						
					 
				
					
						
							
							
								 
								Shih-wei Liao
							
						 
						
							 
							
							
							
							
								
							
							
								e22abfa823 
								
							 
						 
						
							
							
								
								To handle s* registers in emitVFPLoadStoreMultipleInstruction().  
							
							 
							
							... 
							
							
							
							Fixing http://llvm.org/bugs/show_bug.cgi?id=7221 .
llvm-svn: 104652 
							
						 
						
							2010-05-26 00:02:28 +00:00  
						
					 
				
					
						
							
							
								 
								Zonr Chang
							
						 
						
							 
							
							
							
							
								
							
							
								a6714e8a43 
								
							 
						 
						
							
							
								
								Add missing implementation to the materialization of VFP misc. instructions (vmrs, vmsr and vmov (immediate))  
							
							 
							
							... 
							
							
							
							llvm-svn: 104588 
							
						 
						
							2010-05-25 10:23:52 +00:00  
						
					 
				
					
						
							
							
								 
								Zonr Chang
							
						 
						
							 
							
							
							
							
								
							
							
								2da5aa1b60 
								
							 
						 
						
							
							
								
								Add support to MOVimm32 using movt/movw for ARM JIT  
							
							 
							
							... 
							
							
							
							llvm-svn: 104587 
							
						 
						
							2010-05-25 08:42:45 +00:00