Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a0c3b97221 
								
							 
						 
						
							
							
								
								Don't attach annotations to MCInst's.  Instead, have the disassembler return, and the printer accept, an annotation string which can be passed through if the client cares about annotations.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139876 
							
						 
						
							2011-09-15 23:38:46 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								f1e384421a 
								
							 
						 
						
							
							
								
								Nested IT blocks are UNPREDICTABLE.  Mark them as such when disassembling them.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139736 
							
						 
						
							2011-09-14 21:06:21 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a9ebf6fb64 
								
							 
						 
						
							
							
								
								Port more encoding tests to decoding tests, and correct an improper Thumb2 pre-indexed load decoding this uncovered.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139522 
							
						 
						
							2011-09-12 18:56:30 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								53db43b560 
								
							 
						 
						
							
							
								
								LDM writeback is not allowed if Rn is in the target register list.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139432 
							
						 
						
							2011-09-09 23:13:33 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								5bfb0e0a85 
								
							 
						 
						
							
							
								
								Fix assembly/disassembly of Thumb2 ADR instructions with immediate operands.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139422 
							
						 
						
							2011-09-09 22:24:36 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								29cfe6c368 
								
							 
						 
						
							
							
								
								Thumb unconditional branches are allowed in IT blocks, and therefore should have a predicate operand, unlike conditional branches.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139415 
							
						 
						
							2011-09-09 21:48:23 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								a05627ebaf 
								
							 
						 
						
							
							
								
								Thumb2 assembly parsing and encoding for LDREX/LDREXB/LDREXD/LDREXH.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139381 
							
						 
						
							2011-09-09 18:37:27 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								33d39536e6 
								
							 
						 
						
							
							
								
								All conditional branches are disallowed in IT blocks, not just CBZ/CBNZ.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139329 
							
						 
						
							2011-09-08 22:48:37 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								2fefa427d5 
								
							 
						 
						
							
							
								
								Soft fail CBZ/CBNZ in the disassembler if they appear inside an IT block.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139328 
							
						 
						
							2011-09-08 22:42:49 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								7db8d697cf 
								
							 
						 
						
							
							
								
								Thumb2 assembly parsing and encoding for LDRD(immediate).  
							
							 
							
							... 
							
							
							
							Refactor operand handling for STRD as well. Tests for that forthcoming.
llvm-svn: 139322 
							
						 
						
							2011-09-08 22:07:06 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								f174959286 
								
							 
						 
						
							
							
								
								Remove the "common" set of instructions shared between ARM and Thumb2 modes.  This is no longer needed now that Thumb2 has its own copy of the STC/LDC instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139268 
							
						 
						
							2011-09-08 00:11:18 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								18d17aa6b7 
								
							 
						 
						
							
							
								
								Create Thumb2 versions of STC/LDC, and reenable the relevant tests.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139256 
							
						 
						
							2011-09-07 21:10:42 +00:00  
						
					 
				
					
						
							
							
								 
								James Molloy
							
						 
						
							 
							
							
							
							
								
							
							
								8067df9503 
								
							 
						 
						
							
							
								
								Second of a three-patch series aiming to fix MSR/MRS on Cortex-M. This adds predicate checking to the Disassembler.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139250 
							
						 
						
							2011-09-07 19:42:28 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								cd5612d3a5 
								
							 
						 
						
							
							
								
								Port more assembler tests over to disassembler tests, and fix a minor logic error that exposed.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139240 
							
						 
						
							2011-09-07 17:55:19 +00:00  
						
					 
				
					
						
							
							
								 
								James Molloy
							
						 
						
							 
							
							
							
							
								
							
							
								4c493e8050 
								
							 
						 
						
							
							
								
								Refactor instprinter and mcdisassembler to take a SubtargetInfo. Add -mattr= handling to llvm-mc. Reviewed by Owen Anderson.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139237 
							
						 
						
							2011-09-07 17:24:38 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								ed96b58bd2 
								
							 
						 
						
							
							
								
								Merge the ARM disassembler header into the implementation file, since it is not externally exposed.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138982 
							
						 
						
							2011-09-01 23:35:51 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								03aadae01f 
								
							 
						 
						
							
							
								
								Fix 80 columns violations.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138980 
							
						 
						
							2011-09-01 23:23:50 +00:00  
						
					 
				
					
						
							
							
								 
								James Molloy
							
						 
						
							 
							
							
							
							
								
							
							
								db4ce60328 
								
							 
						 
						
							
							
								
								Fix up r137380 based on post-commit review by Jim Grosbach.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138948 
							
						 
						
							2011-09-01 18:02:14 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								4af0aa98d5 
								
							 
						 
						
							
							
								
								The asm parser currently selects the wrong encoding for non-conditional Thumb2 branches.  However, this exposed a number of situations where the decoder was too permissive in allowing invalid instructions to decode successful.  Specify additional fixed bits to close those gaps.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138910 
							
						 
						
							2011-08-31 22:00:41 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								2fa06a7226 
								
							 
						 
						
							
							
								
								Fix issues with disassembly of IT instructions involving condition codes other the EQ/NE.  Discovered by roundtrip testing.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138840 
							
						 
						
							2011-08-30 22:58:27 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								b205c029a4 
								
							 
						 
						
							
							
								
								Improve encoding support for BLX with immediat eoperands, and fix a BLX decoding bug this uncovered.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138675 
							
						 
						
							2011-08-26 23:32:08 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								240d20af79 
								
							 
						 
						
							
							
								
								Spelling fail.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138667 
							
						 
						
							2011-08-26 21:47:57 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								16d33f36d5 
								
							 
						 
						
							
							
								
								invalid-LDR_PRE-arm.txt was already passing, but for the wrong reasons.  We were failing to specify enough fixed bits of LDR_PRE/LDRB_PRE, resulting in decoding conflicts.  Separate them into immediate vs. register versions, allowing us to specify the necessary fixed bits.  This in turn results in the test being decoded properly, and being rejected as UNPREDICTABLE rather than a hard failure.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138653 
							
						 
						
							2011-08-26 20:43:14 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								5658b49f64 
								
							 
						 
						
							
							
								
								Update for feedback from Jim.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138642 
							
						 
						
							2011-08-26 19:39:26 +00:00  
						
					 
				
					
						
							
							
								 
								Benjamin Kramer
							
						 
						
							 
							
							
							
							
								
							
							
								aa38dbadca 
								
							 
						 
						
							
							
								
								ARMDisassembler: Always return a size, even when disassembling fails.  
							
							 
							
							... 
							
							
							
							This should fix PR10772.
llvm-svn: 138636 
							
						 
						
							2011-08-26 18:21:36 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a01bcbfc80 
								
							 
						 
						
							
							
								
								Support an extension of ARM asm syntax to allow immediate operands to ADR instructions.  This is helpful for disassembler testing, and indeed exposed a disassembler bug that is also fixed here.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138635 
							
						 
						
							2011-08-26 18:09:22 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								149695627a 
								
							 
						 
						
							
							
								
								Fix PR10755 by checking for invalid predicate codes from UNPREDICTABLE t2IT instructions when decoding their successors.  
							
							 
							
							... 
							
							
							
							This is the last disassembly crash detected by exhaustive Thumb2 instruction space.  Major thanks to Chandler Carruth for making this kind of exhaustive testing possible.
llvm-svn: 138625 
							
						 
						
							2011-08-26 06:19:51 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								5e30972cff 
								
							 
						 
						
							
							
								
								Port over additional encoding tests to decoding tests, and fix an operand ordering bug this exposed.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138575 
							
						 
						
							2011-08-25 18:30:18 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								37612a3de3 
								
							 
						 
						
							
							
								
								Perform more thorough checking of t2IT mask parameters, which fixes all remaining crashers when disassembling the entire 16-bit instruction space.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138507 
							
						 
						
							2011-08-24 22:40:22 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								216cfaa808 
								
							 
						 
						
							
							
								
								Be careful not to walk off the end of the operand info list while updating VFP predicates.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138492 
							
						 
						
							2011-08-24 21:35:46 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								2bb4035707 
								
							 
						 
						
							
							
								
								Move TargetRegistry and TargetSelect from Target to Support where they belong.  
							
							 
							
							... 
							
							
							
							These are strictly utilities for registering targets and components.
llvm-svn: 138450 
							
						 
						
							2011-08-24 18:08:43 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								523004145e 
								
							 
						 
						
							
							
								
								Be stricter in enforcing IT instruction predicate values, so that we don't end up trying to print out an illegal predicate.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138443 
							
						 
						
							2011-08-24 17:21:43 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								924bcfc92f 
								
							 
						 
						
							
							
								
								Fix decoding of Thumb2 prefetch instructions, which account for all the remaining Thumb2 decoding failures found by randomized testing so far.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138341 
							
						 
						
							2011-08-23 17:51:38 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								9b7bd15d0b 
								
							 
						 
						
							
							
								
								Fix Thumb2 decoding of CPS instructions to mirror ARM decoding of the same instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138339 
							
						 
						
							2011-08-23 17:45:18 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								eb1367b2b8 
								
							 
						 
						
							
							
								
								Reject invalid imod values in t2CPS instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138306 
							
						 
						
							2011-08-22 23:44:04 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								df698b032c 
								
							 
						 
						
							
							
								
								Fix decoding of VMOVSRR and VMOVRRS, which account for the overwhelming majority of decoder crashes detected by randomized testing.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138269 
							
						 
						
							2011-08-22 20:27:12 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								721c3704da 
								
							 
						 
						
							
							
								
								Fix another batch of VLD/VST decoding crashes discovered by randomized testing.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138255 
							
						 
						
							2011-08-22 18:42:13 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								ac92e77bb8 
								
							 
						 
						
							
							
								
								Correct writeback handling of duplicating VLD instructions.  Discovered by randomized testing.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138251 
							
						 
						
							2011-08-22 18:22:06 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								b49813206b 
								
							 
						 
						
							
							
								
								Fix an incorrect shift when decoding SP-relative stores in Thumb1-mode.  Add more tests.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138246 
							
						 
						
							2011-08-22 17:56:58 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								96b7ad2e17 
								
							 
						 
						
							
							
								
								STC2L_POST and STC2L_POST should be handled the same as STCL_POST/LDC_POST for the purposes of decoding all operands except the predicate.  
							
							 
							
							... 
							
							
							
							Found by randomized testing.
llvm-svn: 138003 
							
						 
						
							2011-08-18 22:47:44 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								192a760b54 
								
							 
						 
						
							
							
								
								Fix the decoding of RFE instruction.  RFEs have the load bit set, while SRSs have it unset.  
							
							 
							
							... 
							
							
							
							llvm-svn: 138000 
							
						 
						
							2011-08-18 22:31:17 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								5d2db89ba6 
								
							 
						 
						
							
							
								
								Remember to fill in some operands so we can print _something_ coherent even when decoding the CPS instruction soft-fails.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137997 
							
						 
						
							2011-08-18 22:15:25 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								67d6f11974 
								
							 
						 
						
							
							
								
								Improve handling of failure and unpredictable cases for CPS, STR, and SMLA instructions.  
							
							 
							
							... 
							
							
							
							Fixes a large class of disassembler crashes found by randomized testing.
llvm-svn: 137995 
							
						 
						
							2011-08-18 22:11:02 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								d14b70d00b 
								
							 
						 
						
							
							
								
								Tidy up. 80 columns.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137881 
							
						 
						
							2011-08-17 21:58:18 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								46dd413991 
								
							 
						 
						
							
							
								
								ARM clean up the imm_sr operand class representation.  
							
							 
							
							... 
							
							
							
							Represent the operand value as it will be encoded in the instruction. This
allows removing the specialized encoder and decoder methods entirely. Add
an assembler match class while we're at it to lay groundwork for parsing the
thumb shift instructions.
llvm-svn: 137879 
							
						 
						
							2011-08-17 21:51:27 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								187e1e46f9 
								
							 
						 
						
							
							
								
								Be more careful in the Thumb decoder hooks to avoid walking off the end of the OpInfo array.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137838 
							
						 
						
							2011-08-17 18:14:48 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a4043c4b32 
								
							 
						 
						
							
							
								
								Allow the MCDisassembler to return a "soft fail" status code, indicating an instruction that is disassemblable, but invalid.  Only used for ARM UNPREDICTABLE instructions at the moment.  
							
							 
							
							... 
							
							
							
							Patch by James Molloy.
llvm-svn: 137830 
							
						 
						
							2011-08-17 17:44:15 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								91a8f9be20 
								
							 
						 
						
							
							
								
								Separate out Thumb1 instructions that need an S bit operand from those that do not, for the purposes of decoding them.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137787 
							
						 
						
							2011-08-16 23:45:44 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a6201f0a72 
								
							 
						 
						
							
							
								
								Specify a necessary fixed bit for VLD3DUP, and otherwise rearrange the Thumb2 NEON decoding hooks to bring us closer to correctness.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137686 
							
						 
						
							2011-08-15 23:38:54 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								1d5d2cac8c 
								
							 
						 
						
							
							
								
								Enforce the constraint that Rt must be even on LDRD/STRD instructions in ARM mode.  Update tests to reflect this fact.  
							
							 
							
							... 
							
							
							
							Patch by James Molloy.
llvm-svn: 137647 
							
						 
						
							2011-08-15 20:51:32 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								b9d82f411c 
								
							 
						 
						
							
							
								
								Fix problems decoding the to/from-lane NEON memory instructions, and add a comprehensive NEON decoding testcase.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137635 
							
						 
						
							2011-08-15 18:44:44 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								2d1d7a11f8 
								
							 
						 
						
							
							
								
								Fix some remaining issues with decoding ARM-mode memory instructions, and add another batch of tests.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137502 
							
						 
						
							2011-08-12 20:36:11 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								60138eaf93 
								
							 
						 
						
							
							
								
								Fix decoding of ARM-mode STRH.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137499 
							
						 
						
							2011-08-12 20:02:50 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								3987a61c16 
								
							 
						 
						
							
							
								
								Fix decoding of pre-indexed stores.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137487 
							
						 
						
							2011-08-12 18:12:39 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								c5798a3a59 
								
							 
						 
						
							
							
								
								Separate decoding for STREXD and LDREXD to make each work better.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137476 
							
						 
						
							2011-08-12 17:58:32 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								e25942154c 
								
							 
						 
						
							
							
								
								ARM STRT assembly parsing and encoding.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137372 
							
						 
						
							2011-08-11 22:18:00 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								ff0b442330 
								
							 
						 
						
							
							
								
								Add another accidentally omitted predicate operand.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137370 
							
						 
						
							2011-08-11 22:08:38 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								2f7aa73312 
								
							 
						 
						
							
							
								
								Add missing predicate operand on SMLA and friends.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137368 
							
						 
						
							2011-08-11 22:05:38 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								b685c9f011 
								
							 
						 
						
							
							
								
								Fix decoding support for STREXD and LDREXD.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137356 
							
						 
						
							2011-08-11 21:34:58 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								3a850f28d0 
								
							 
						 
						
							
							
								
								Fix decoding for indexed STRB and LDRB.  Fixes <rdar://problem/9926161>.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137347 
							
						 
						
							2011-08-11 20:47:56 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								6066340301 
								
							 
						 
						
							
							
								
								Continue to tighten decoding by performing more operand validation.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137340 
							
						 
						
							2011-08-11 20:21:46 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								2a50260f2f 
								
							 
						 
						
							
							
								
								ARM STRBT assembly parsing and encoding.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137337 
							
						 
						
							2011-08-11 20:04:56 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								3477f2cea5 
								
							 
						 
						
							
							
								
								Tighten decoding of addrmode2 instructions to reject more UNPREDICTABLE cases.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137325 
							
						 
						
							2011-08-11 19:00:18 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								0e15b48f3c 
								
							 
						 
						
							
							
								
								Tighten operand decoding of addrmode2 instruction.  The offset register cannot be PC.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137323 
							
						 
						
							2011-08-11 18:55:42 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								ed25385227 
								
							 
						 
						
							
							
								
								Improve error checking in the new ARM disassembler.  Patch by James Molloy.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137320 
							
						 
						
							2011-08-11 18:24:51 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								d5d6359785 
								
							 
						 
						
							
							
								
								ARM LDRT assembly parsing and encoding.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137282 
							
						 
						
							2011-08-10 23:43:54 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								c86a5bd219 
								
							 
						 
						
							
							
								
								Add initial support for decoding NEON instructions in Thumb2 mode.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137236 
							
						 
						
							2011-08-10 19:01:10 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								5d69f63bbb 
								
							 
						 
						
							
							
								
								Cleanups based on Nick Lewycky's feedback.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137224 
							
						 
						
							2011-08-10 17:36:48 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								8059f0cf8d 
								
							 
						 
						
							
							
								
								Push GPRnopc through a large number of instruction definitions to tighten operand decoding.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137189 
							
						 
						
							2011-08-10 00:03:03 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								92b942b1b5 
								
							 
						 
						
							
							
								
								Tighten operand checking of register-shifted-register operands.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137180 
							
						 
						
							2011-08-09 23:33:27 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								e008931bf6 
								
							 
						 
						
							
							
								
								Tighten operand checking on memory barrier instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137176 
							
						 
						
							2011-08-09 23:25:42 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								3d2e0e9db6 
								
							 
						 
						
							
							
								
								Tighten operand checking on CPS instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137172 
							
						 
						
							2011-08-09 23:05:39 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								042619f97d 
								
							 
						 
						
							
							
								
								Create a new register class for the set of all GPRs except the PC.  Use it to tighten our decoding of BFI.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137168 
							
						 
						
							2011-08-09 22:48:45 +00:00  
						
					 
				
					
						
							
							
								 
								Benjamin Kramer
							
						 
						
							 
							
							
							
							
								
							
							
								406dc1755f 
								
							 
						 
						
							
							
								
								ARM Disassembler: sign extend branch immediates.  
							
							 
							
							... 
							
							
							
							Not sure about BLXi, but this is what the old disassembler did.
llvm-svn: 137156 
							
						 
						
							2011-08-09 22:02:50 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								d151b09921 
								
							 
						 
						
							
							
								
								Silence an false-positive warning.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137154 
							
						 
						
							2011-08-09 21:38:14 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								7a2401dbf0 
								
							 
						 
						
							
							
								
								Tighten Thumb1 branch predicate decoding.  
							
							 
							
							... 
							
							
							
							llvm-svn: 137146 
							
						 
						
							2011-08-09 21:07:45 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								e0152a73c2 
								
							 
						 
						
							
							
								
								Replace the existing ARM disassembler with a new one based on the FixedLenDecoderEmitter.  
							
							 
							
							... 
							
							
							
							This new disassembler can correctly decode all the testcases that the old one did, though
some "expected failure" testcases are XFAIL'd for now because it is not (yet) as strict in
operand checking as the old one was.
llvm-svn: 137144 
							
						 
						
							2011-08-09 20:55:18 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								d359571120 
								
							 
						 
						
							
							
								
								ARM refactoring assembly parsing of memory address operands.  
							
							 
							
							... 
							
							
							
							Memory operand parsing is a bit haphazzard at the moment, in no small part
due to the even more haphazzard representations of memory operands in the .td
files. Start cleaning that all up, at least a bit.
The addressing modes in the .td files will be being simplified to not be
so monolithic, especially with regards to immediate vs. register offsets
and post-indexed addressing. addrmode3 is on its way with this patch, for
example.
This patch is foundational to enable going back to smaller incremental patches
for the individual memory referencing instructions themselves. It does just
enough to get the basics in place and handle the "make check" regression tests
we already have.
Follow-up work will be fleshing out the details and adding more robust test
cases for the individual instructions, starting with ARM mode and moving from
there into Thumb and Thumb2.
llvm-svn: 136845 
							
						 
						
							2011-08-03 23:50:40 +00:00  
						
					 
				
					
						
							
							
								 
								Johnny Chen
							
						 
						
							 
							
							
							
							
								
							
							
								dc62e59776 
								
							 
						 
						
							
							
								
								Fix typo in the comment.  
							
							 
							
							... 
							
							
							
							llvm-svn: 129837 
							
						 
						
							2011-04-19 23:58:52 +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  
						
					 
				
					
						
							
							
								 
								Johnny Chen
							
						 
						
							 
							
							
							
							
								
							
							
								923f3dac01 
								
							 
						 
						
							
							
								
								Fixed the t2PLD and friends disassembly and add two test cases.  
							
							 
							
							... 
							
							
							
							llvm-svn: 128322 
							
						 
						
							2011-03-26 01:32:48 +00:00  
						
					 
				
					
						
							
							
								 
								Johnny Chen
							
						 
						
							 
							
							
							
							
								
							
							
								02e59ad506 
								
							 
						 
						
							
							
								
								Plug a leak by ThumbDisassembler::getInstruction(), thanks to Benjamin Kramer!  
							
							 
							
							... 
							
							
							
							llvm-svn: 128241 
							
						 
						
							2011-03-24 21:42:55 +00:00  
						
					 
				
					
						
							
							
								 
								Benjamin Kramer
							
						 
						
							 
							
							
							
							
								
							
							
								dd9eb21c3f 
								
							 
						 
						
							
							
								
								Plug a leak in the arm disassembler and put the tests back.  
							
							 
							
							... 
							
							
							
							llvm-svn: 128238 
							
						 
						
							2011-03-24 21:14:28 +00:00  
						
					 
				
					
						
							
							
								 
								Johnny Chen
							
						 
						
							 
							
							
							
							
								
							
							
								7ca3ddc233 
								
							 
						 
						
							
							
								
								For ARM Disassembler, start a newline to dump the opcode and friends for an instruction.  
							
							 
							
							... 
							
							
							
							Change inspired by llvm-bug 9530 submitted by Jyun-Yan You.
llvm-svn: 128122 
							
						 
						
							2011-03-22 23:49:46 +00:00  
						
					 
				
					
						
							
							
								 
								Johnny Chen
							
						 
						
							 
							
							
							
							
								
							
							
								9363d41f14 
								
							 
						 
						
							
							
								
								LLVM combines the offset mode of A8.6.199 A1 & A2 into STRBT.  
							
							 
							
							... 
							
							
							
							The insufficient encoding information of the combined instruction confuses the decoder wrt
UQADD16.  Add extra logic to recover from that.
Fixed an assert reported by Sean Callanan
llvm-svn: 127354 
							
						 
						
							2011-03-09 20:01:14 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								4ebf471c9b 
								
							 
						 
						
							
							
								
								Revert both r121082 (which broke a bunch of constant pool stuff) and r125074 (which worked around it).  This should get us back to the old, correct behavior, though it will make the integrated assembler unhappy for the time being.  
							
							 
							
							... 
							
							
							
							llvm-svn: 125127 
							
						 
						
							2011-02-08 22:39:40 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								99ea8a3510 
								
							 
						 
						
							
							
								
								Second attempt at converting Thumb2's LDRpci, including updating the gazillion places that need to know about it.  
							
							 
							
							... 
							
							
							
							llvm-svn: 121082 
							
						 
						
							2010-12-07 00:45:21 +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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								8335e8fa63 
								
							 
						 
						
							
							
								
								Simplify the encoding of reg+/-imm12 values that allow PC-relative encoding.  This allows the  
							
							 
							
							... 
							
							
							
							Thumb2 encoding to share code with the ARM encoding, which gets use fixup support for free.
It also allows us to fold away at least one codegen-only pattern.
llvm-svn: 120481 
							
						 
						
							2010-11-30 22:45:47 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								6f36042557 
								
							 
						 
						
							
							
								
								Add support to match @llvm.prefetch to pld / pldw / pli. rdar://8601536.  
							
							 
							
							... 
							
							
							
							llvm-svn: 118152 
							
						 
						
							2010-11-03 05:14:24 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								d100ed858e 
								
							 
						 
						
							
							
								
								Detabify and clean up 80 column violations.  
							
							 
							
							... 
							
							
							
							llvm-svn: 116454 
							
						 
						
							2010-10-13 23:47:11 +00:00  
						
					 
				
					
						
							
							
								 
								Oscar Fuentes
							
						 
						
							 
							
							
							
							
								
							
							
								3da4255d07 
								
							 
						 
						
							
							
								
								Add ARM Disassembler to the CMake build.  
							
							 
							
							... 
							
							
							
							llvm-svn: 114949 
							
						 
						
							2010-09-28 11:48:19 +00:00  
						
					 
				
					
						
							
							
								 
								NAKAMURA Takumi
							
						 
						
							 
							
							
							
							
								
							
							
								7a23aa081a 
								
							 
						 
						
							
							
								
								ARM/Disassembler: Fix definitions incompatible(unsigned and uint32_t) to Cygwin-1.5, following up to r113255.  
							
							 
							
							... 
							
							
							
							llvm-svn: 113345 
							
						 
						
							2010-09-08 04:48:17 +00:00  
						
					 
				
					
						
							
							
								 
								Johnny Chen
							
						 
						
							 
							
							
							
							
								
							
							
								74491bb52c 
								
							 
						 
						
							
							
								
								The autogened decoder was confusing the ARM STRBT for ARM USAT, because the .td  
							
							 
							
							... 
							
							
							
							entry for ARM STRBT is actually a super-instruction for A8.6.199 STRBT A1 & A2.
Recover by looking for ARM:USAT encoding pattern before delegating to the auto-
gened decoder.
Added a "usat" test case to arm-tests.txt.
llvm-svn: 110894 
							
						 
						
							2010-08-12 01:40:54 +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  
						
					 
				
					
						
							
							
								 
								Johnny Chen
							
						 
						
							 
							
							
							
							
								
							
							
								7be315c414 
								
							 
						 
						
							
							
								
								For t2LDRT, t2LDRBT, t2LDRHT, t2LDRSBT, and t2LDRSHT, if Rn(Inst{19-16})=='1111',  
							
							 
							
							... 
							
							
							
							transform the Opcode to the corresponding t2LDR*pci counterpart.
Ref: A8.6.86 LDRT, A8.6.65 LDRBT, A8.6.77 LDRHT, A8.6.81 LDRSBT, A8.6.85 LDRSHT
llvm-svn: 101915 
							
						 
						
							2010-04-20 17:28:50 +00:00  
						
					 
				
					
						
							
							
								 
								Johnny Chen
							
						 
						
							 
							
							
							
							
								
							
							
								f3dd8b9487 
								
							 
						 
						
							
							
								
								More IT instruction error-handling improvements from fuzzing.  
							
							 
							
							... 
							
							
							
							llvm-svn: 101839 
							
						 
						
							2010-04-20 00:15:41 +00:00  
						
					 
				
					
						
							
							
								 
								Johnny Chen
							
						 
						
							 
							
							
							
							
								
							
							
								e62b680965 
								
							 
						 
						
							
							
								
								Better error handling of invalid IT mask '0000', instead of just asserting.  
							
							 
							
							... 
							
							
							
							llvm-svn: 101827 
							
						 
						
							2010-04-19 23:02:58 +00:00  
						
					 
				
					
						
							
							
								 
								Johnny Chen
							
						 
						
							 
							
							
							
							
								
							
							
								ed9bee150b 
								
							 
						 
						
							
							
								
								Fixed logic error.  Should check Builder for validity before calling SetSession  
							
							 
							
							... 
							
							
							
							on it.
llvm-svn: 101563 
							
						 
						
							2010-04-16 23:02:25 +00:00  
						
					 
				
					
						
							
							
								 
								Johnny Chen
							
						 
						
							 
							
							
							
							
								
							
							
								7637827064 
								
							 
						 
						
							
							
								
								Fixed another assert exposed by fuzzing.  The utility function getRegisterEnum()  
							
							 
							
							... 
							
							
							
							was asserting because the (RegClass, RegNum) combination doesn't make sense from
an encoding point of view.
Since getRegisterEnum() is used all over the place, to change the code to check
for encoding error after each call would not only bloat the code, but also make
it less readable.  An Err flag is added to the ARMBasicMCBuilder where a client
can set a non-zero value to indicate some kind of error condition while building
up the MCInst.  ARMBasicMCBuilder::BuildIt() checks this flag and returns false
if a non-zero value is detected.
llvm-svn: 101290 
							
						 
						
							2010-04-14 21:03:13 +00:00