05df460269 
								
							 
						 
						
							
							
								
								ARM VST1 w/ writeback assembly parsing and encoding.  
							
							... 
							
							
							
							llvm-svn: 143369 
							
						 
						
							2011-10-31 21:50:31 +00:00  
				
					
						
							
							
								 
						
							
								40703f4252 
								
							 
						 
						
							
							
								
								More not-crashing NEON disassembly updates for the vld refactoring.  
							
							... 
							
							
							
							llvm-svn: 143351 
							
						 
						
							2011-10-31 17:17:32 +00:00  
				
					
						
							
							
								 
						
							
								dde461c8b1 
								
							 
						 
						
							
							
								
								Reapply r143202, with a manual decoding hook for SWP.  This change inadvertantly exposed a decoding ambiguity between SWP and CPS that the auto-generated decoder can't handle.  
							
							... 
							
							
							
							llvm-svn: 143208 
							
						 
						
							2011-10-28 18:02:13 +00:00  
				
					
						
							
							
								 
						
							
								8a6ebd085a 
								
							 
						 
						
							
							
								
								Add some NEON stores to the VLD decoding hook that were accidentally omitted previously.  
							
							... 
							
							
							
							llvm-svn: 143162 
							
						 
						
							2011-10-27 22:53:10 +00:00  
				
					
						
							
							
								 
						
							
								17ec1a19e5 
								
							 
						 
						
							
							
								
								ARM assembly parsing and encoding for VLD1 with writeback.  
							
							... 
							
							
							
							Four entry register lists.
llvm-svn: 142882 
							
						 
						
							2011-10-25 00:14:01 +00:00  
				
					
						
							
							
								 
						
							
								92fd05ecdc 
								
							 
						 
						
							
							
								
								ARM assembly parsing and encoding for VLD1 w/ writeback.  
							
							... 
							
							
							
							Three entry register list variation.
llvm-svn: 142876 
							
						 
						
							2011-10-24 23:26:05 +00:00  
				
					
						
							
							
								 
						
							
								2098cb1e6f 
								
							 
						 
						
							
							
								
								ARM refactor am6offset usage for VLD1.  
							
							... 
							
							
							
							Split am6offset into fixed and register offset variants so the instruction
encodings are explicit rather than relying an a magic reg0 marker.
Needed to being able to parse these.
llvm-svn: 142853 
							
						 
						
							2011-10-24 21:45:13 +00:00  
				
					
						
							
							
								 
						
							
								295b1e84ce 
								
							 
						 
						
							
							
								
								Fix a NEON disassembly case that was broken in the recent refactorings.  As more of this code gets refactored, a lot of these manual decoding hooks should get smaller and/or go away entirely.  
							
							... 
							
							
							
							llvm-svn: 142817 
							
						 
						
							2011-10-24 18:04:29 +00:00  
				
					
						
							
							
								 
						
							
								0d6d098841 
								
							 
						 
						
							
							
								
								Move various generated tables into read-only memory, fixing up const correctness along the way.  
							
							... 
							
							
							
							llvm-svn: 142726 
							
						 
						
							2011-10-22 16:50:00 +00:00  
				
					
						
							
							
								 
						
							
								11c0b347c6 
								
							 
						 
						
							
							
								
								Assembly parsing for 4-register sequential variant of VLD2.  
							
							... 
							
							
							
							llvm-svn: 142704 
							
						 
						
							2011-10-21 23:58:57 +00:00  
				
					
						
							
							
								 
						
							
								118b38cbf1 
								
							 
						 
						
							
							
								
								Assembly parsing for 2-register sequential variant of VLD2.  
							
							... 
							
							
							
							llvm-svn: 142691 
							
						 
						
							2011-10-21 22:21:10 +00:00  
				
					
						
							
							
								 
						
							
								846bcff7c7 
								
							 
						 
						
							
							
								
								Assembly parsing for 4-register variant of VLD1.  
							
							... 
							
							
							
							llvm-svn: 142682 
							
						 
						
							2011-10-21 20:35:01 +00:00  
				
					
						
							
							
								 
						
							
								c4360fe575 
								
							 
						 
						
							
							
								
								Assembly parsing for 3-register variant of VLD1.  
							
							... 
							
							
							
							llvm-svn: 142675 
							
						 
						
							2011-10-21 20:02:19 +00:00  
				
					
						
							
							
								 
						
							
								2f2e3c4737 
								
							 
						 
						
							
							
								
								ARM VLD parsing and encoding.  
							
							... 
							
							
							
							Next step in the ongoing saga of NEON load/store assmebly parsing. Handle
VLD1 instructions that take a two-register register list.
Adjust the instruction definitions to only have the single encoded register
as an operand. The super-register from the pseudo is kept as an implicit def,
so passes which come after pseudo-expansion still know that the instruction
defines the other subregs.
llvm-svn: 142670 
							
						 
						
							2011-10-21 18:54:25 +00:00  
				
					
						
							
							
								 
						
							
								79ebc51c45 
								
							 
						 
						
							
							
								
								Tidy up. Trailing whitespace.  
							
							... 
							
							
							
							llvm-svn: 142591 
							
						 
						
							2011-10-20 17:28:20 +00:00  
				
					
						
							
							
								 
						
							
								34957911e7 
								
							 
						 
						
							
							
								
								Removed set, but unused variables.  
							
							... 
							
							
							
							Patch by Joe Abbey <jabbey@arxan.com>.
llvm-svn: 142223 
							
						 
						
							2011-10-17 18:48:30 +00:00  
				
					
						
							
							
								 
						
							
								8b478360ef 
								
							 
						 
						
							
							
								
								Fix a non-firing assert.  Change:  
							
							... 
							
							
							
							assert("bad SymbolicOp.VariantKind");
To:
    assert(0 && "bad SymbolicOp.VariantKind");
llvm-svn: 142000 
							
						 
						
							2011-10-14 20:50:26 +00:00  
				
					
						
							
							
								 
						
							
								a7ad9f3932 
								
							 
						 
						
							
							
								
								Fix undefined shift.  Patch by Ahmed Charles.  
							
							... 
							
							
							
							llvm-svn: 141914 
							
						 
						
							2011-10-13 23:36:06 +00:00  
				
					
						
							
							
								 
						
							
								44f76eafae 
								
							 
						 
						
							
							
								
								SETEND is not allowed in an IT block.  
							
							... 
							
							
							
							llvm-svn: 141874 
							
						 
						
							2011-10-13 17:58:39 +00:00  
				
					
						
							
							
								 
						
							
								a098a891ab 
								
							 
						 
						
							
							
								
								ARM addrmode5 represents the 'U' bit of the encoding backwards.  
							
							... 
							
							
							
							The disassembler needs to use the AM5 factory methods instead of just
building up the immediate directly.
llvm-svn: 141819 
							
						 
						
							2011-10-12 21:59:02 +00:00  
				
					
						
							
							
								 
						
							
								54a20ed0f1 
								
							 
						 
						
							
							
								
								Thumb2 assembly parsing and encoding for LDC/STC.  
							
							... 
							
							
							
							llvm-svn: 141811 
							
						 
						
							2011-10-12 20:54:17 +00:00  
				
					
						
							
							
								 
						
							
								8007320902 
								
							 
						 
						
							
							
								
								addrmode2 is gone from these, so no need for the reg0 operand.  
							
							... 
							
							
							
							llvm-svn: 141794 
							
						 
						
							2011-10-12 18:11:24 +00:00  
				
					
						
							
							
								 
						
							
								6a5c150e9c 
								
							 
						 
						
							
							
								
								Fix the check for nested IT instructions in the disassembler.  We need to perform the check before adding the Thumb predicate, which pops on entry off the ITBlock queue.  
							
							... 
							
							
							
							llvm-svn: 141339 
							
						 
						
							2011-10-06 23:33:11 +00:00  
				
					
						
							
							
								 
						
							
								5dcda64338 
								
							 
						 
						
							
							
								
								Adding back support for printing operands symbolically to ARM's new disassembler  
							
							... 
							
							
							
							using llvm's public 'C' disassembler API now including annotations.
Hooked this up to Darwin's otool(1) so it can again print things like branch
targets for example this:
 blx _puts
instead of this:
 blx #-36
and includes support for annotations for branches to symbol stubs like:
 bl	0x40 @ symbol stub for: _puts
and annotations for pc relative loads like this:
 ldr	r3, #8  @ literal pool for: Hello, world!
Also again can print the expression encoded in the Mach-O relocation entries for
things like this:
 movt r0, :upper16:((_foo-_bar)+1234)
llvm-svn: 141129 
							
						 
						
							2011-10-04 22:44:48 +00:00  
				
					
						
							
							
								 
						
							
								efc761a1eb 
								
							 
						 
						
							
							
								
								ARM fix encoding of VMOV.f32 and VMOV.f64 immediates.  
							
							... 
							
							
							
							Encode the immediate into its 8-bit form as part of isel rather than later,
which simplifies things for mapping the encoding bits, allows the removal
of the custom disassembler decoding hook, makes the operand printer trivial,
and prepares things more cleanly for handling these in the asm parser.
rdar://10211428
llvm-svn: 140834 
							
						 
						
							2011-09-30 00:50:06 +00:00  
				
					
						
							
							
								 
						
							
								f01e2de5e6 
								
							 
						 
						
							
							
								
								ASR  #32  is not allowed on Thumb2 USAT and SSAT instructions.  
							
							... 
							
							
							
							llvm-svn: 140560 
							
						 
						
							2011-09-26 21:06:22 +00:00  
				
					
						
							
							
								 
						
							
								987a878946 
								
							 
						 
						
							
							
								
								Reapply r140412 (Thumb2 reg-reg loads cannot target SP or PC), with invalid testcases updated.  
							
							... 
							
							
							
							llvm-svn: 140415 
							
						 
						
							2011-09-23 21:07:25 +00:00  
				
					
						
							
							
								 
						
							
								ffa8428acf 
								
							 
						 
						
							
							
								
								Revert r140412.  This affects more instructions than intended.  
							
							... 
							
							
							
							llvm-svn: 140413 
							
						 
						
							2011-09-23 21:02:01 +00:00  
				
					
						
							
							
								 
						
							
								7591d0c363 
								
							 
						 
						
							
							
								
								Thumb2 register-shifted-register loads cannot target the PC or the SP.  
							
							... 
							
							
							
							llvm-svn: 140412 
							
						 
						
							2011-09-23 21:00:32 +00:00  
				
					
						
							
							
								 
						
							
								163be01d69 
								
							 
						 
						
							
							
								
								tMOVSr is not allowed in an IT block either.  
							
							... 
							
							
							
							llvm-svn: 140104 
							
						 
						
							2011-09-19 23:57:20 +00:00  
				
					
						
							
							
								 
						
							
								61e4604dd8 
								
							 
						 
						
							
							
								
								CPS instructions are UNPREDICTABLE inside IT blocks.  
							
							... 
							
							
							
							llvm-svn: 140102 
							
						 
						
							2011-09-19 23:47:10 +00:00  
				
					
						
							
							
								 
						
							
								f902d92fc9 
								
							 
						 
						
							
							
								
								Thumb2 TBB and TBH instructions are only allowed at the end of IT blocks, not in the middle.  
							
							... 
							
							
							
							llvm-svn: 140079 
							
						 
						
							2011-09-19 22:34:23 +00:00  
				
					
						
							
							
								 
						
							
								05541f45f3 
								
							 
						 
						
							
							
								
								Thumb2 assembly parsing and encoding for TBB/TBH.  
							
							... 
							
							
							
							llvm-svn: 140078 
							
						 
						
							2011-09-19 22:21:13 +00:00  
				
					
						
							
							
								 
						
							
								ddfcec92d9 
								
							 
						 
						
							
							
								
								Handle STRT (and friends) like LDRT (and friends) for decoding purposes.  Port over additional encoding tests to decoding tests.  
							
							... 
							
							
							
							llvm-svn: 140032 
							
						 
						
							2011-09-19 18:07:10 +00:00  
				
					
						
							
							
								 
						
							
								502cd9d87a 
								
							 
						 
						
							
							
								
								Bitfield mask instructions are unpredictable if the encoded LSB is higher than the encoded MSB.  
							
							... 
							
							
							
							llvm-svn: 139972 
							
						 
						
							2011-09-16 23:30:01 +00:00  
				
					
						
							
							
								 
						
							
								b925e935d7 
								
							 
						 
						
							
							
								
								Fix bitfield decoding based on Eli's feedback.  
							
							... 
							
							
							
							llvm-svn: 139969 
							
						 
						
							2011-09-16 23:04:48 +00:00  
				
					
						
							
							
								 
						
							
								bcfa9a6f89 
								
							 
						 
						
							
							
								
								Thumb2 pre-indexed loads/stores use the restricted GPR set for Rt.  
							
							... 
							
							
							
							llvm-svn: 139965 
							
						 
						
							2011-09-16 22:42:36 +00:00  
				
					
						
							
							
								 
						
							
								3ca958cd19 
								
							 
						 
						
							
							
								
								Fix disassembly of Thumb2 BFI instructions with bit range of [0, 32).  
							
							... 
							
							
							
							llvm-svn: 139964 
							
						 
						
							2011-09-16 22:29:48 +00:00  
				
					
						
							
							
								 
						
							
								fe82365cb0 
								
							 
						 
						
							
							
								
								Fix disassembly of Thumb2 LDRSH with a #-0 offset.  
							
							... 
							
							
							
							llvm-svn: 139943 
							
						 
						
							2011-09-16 21:08:33 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								f1e384421a 
								
							 
						 
						
							
							
								
								Nested IT blocks are UNPREDICTABLE.  Mark them as such when disassembling them.  
							
							... 
							
							
							
							llvm-svn: 139736 
							
						 
						
							2011-09-14 21:06:21 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								5bfb0e0a85 
								
							 
						 
						
							
							
								
								Fix assembly/disassembly of Thumb2 ADR instructions with immediate operands.  
							
							... 
							
							
							
							llvm-svn: 139422 
							
						 
						
							2011-09-09 22:24:36 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								a05627ebaf 
								
							 
						 
						
							
							
								
								Thumb2 assembly parsing and encoding for LDREX/LDREXB/LDREXD/LDREXH.  
							
							... 
							
							
							
							llvm-svn: 139381 
							
						 
						
							2011-09-09 18:37:27 +00:00  
				
					
						
							
							
								 
						
							
								33d39536e6 
								
							 
						 
						
							
							
								
								All conditional branches are disallowed in IT blocks, not just CBZ/CBNZ.  
							
							... 
							
							
							
							llvm-svn: 139329 
							
						 
						
							2011-09-08 22:48:37 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								18d17aa6b7 
								
							 
						 
						
							
							
								
								Create Thumb2 versions of STC/LDC, and reenable the relevant tests.  
							
							... 
							
							
							
							llvm-svn: 139256 
							
						 
						
							2011-09-07 21:10:42 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								03aadae01f 
								
							 
						 
						
							
							
								
								Fix 80 columns violations.  
							
							... 
							
							
							
							llvm-svn: 138980 
							
						 
						
							2011-09-01 23:23:50 +00:00  
				
					
						
							
							
								 
						
							
								db4ce60328 
								
							 
						 
						
							
							
								
								Fix up r137380 based on post-commit review by Jim Grosbach.  
							
							... 
							
							
							
							llvm-svn: 138948 
							
						 
						
							2011-09-01 18:02:14 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								240d20af79 
								
							 
						 
						
							
							
								
								Spelling fail.  
							
							... 
							
							
							
							llvm-svn: 138667 
							
						 
						
							2011-08-26 21:47:57 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								5658b49f64 
								
							 
						 
						
							
							
								
								Update for feedback from Jim.  
							
							... 
							
							
							
							llvm-svn: 138642 
							
						 
						
							2011-08-26 19:39:26 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								eb1367b2b8 
								
							 
						 
						
							
							
								
								Reject invalid imod values in t2CPS instructions.  
							
							... 
							
							
							
							llvm-svn: 138306 
							
						 
						
							2011-08-22 23:44:04 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								721c3704da 
								
							 
						 
						
							
							
								
								Fix another batch of VLD/VST decoding crashes discovered by randomized testing.  
							
							... 
							
							
							
							llvm-svn: 138255 
							
						 
						
							2011-08-22 18:42:13 +00:00  
				
					
						
							
							
								 
						
							
								ac92e77bb8 
								
							 
						 
						
							
							
								
								Correct writeback handling of duplicating VLD instructions.  Discovered by randomized testing.  
							
							... 
							
							
							
							llvm-svn: 138251 
							
						 
						
							2011-08-22 18:22:06 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								d14b70d00b 
								
							 
						 
						
							
							
								
								Tidy up. 80 columns.  
							
							... 
							
							
							
							llvm-svn: 137881 
							
						 
						
							2011-08-17 21:58:18 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								60138eaf93 
								
							 
						 
						
							
							
								
								Fix decoding of ARM-mode STRH.  
							
							... 
							
							
							
							llvm-svn: 137499 
							
						 
						
							2011-08-12 20:02:50 +00:00  
				
					
						
							
							
								 
						
							
								3987a61c16 
								
							 
						 
						
							
							
								
								Fix decoding of pre-indexed stores.  
							
							... 
							
							
							
							llvm-svn: 137487 
							
						 
						
							2011-08-12 18:12:39 +00:00  
				
					
						
							
							
								 
						
							
								c5798a3a59 
								
							 
						 
						
							
							
								
								Separate decoding for STREXD and LDREXD to make each work better.  
							
							... 
							
							
							
							llvm-svn: 137476 
							
						 
						
							2011-08-12 17:58:32 +00:00  
				
					
						
							
							
								 
						
							
								e25942154c 
								
							 
						 
						
							
							
								
								ARM STRT assembly parsing and encoding.  
							
							... 
							
							
							
							llvm-svn: 137372 
							
						 
						
							2011-08-11 22:18:00 +00:00  
				
					
						
							
							
								 
						
							
								ff0b442330 
								
							 
						 
						
							
							
								
								Add another accidentally omitted predicate operand.  
							
							... 
							
							
							
							llvm-svn: 137370 
							
						 
						
							2011-08-11 22:08:38 +00:00  
				
					
						
							
							
								 
						
							
								2f7aa73312 
								
							 
						 
						
							
							
								
								Add missing predicate operand on SMLA and friends.  
							
							... 
							
							
							
							llvm-svn: 137368 
							
						 
						
							2011-08-11 22:05:38 +00:00  
				
					
						
							
							
								 
						
							
								b685c9f011 
								
							 
						 
						
							
							
								
								Fix decoding support for STREXD and LDREXD.  
							
							... 
							
							
							
							llvm-svn: 137356 
							
						 
						
							2011-08-11 21:34:58 +00:00  
				
					
						
							
							
								 
						
							
								3a850f28d0 
								
							 
						 
						
							
							
								
								Fix decoding for indexed STRB and LDRB.  Fixes <rdar://problem/9926161>.  
							
							... 
							
							
							
							llvm-svn: 137347 
							
						 
						
							2011-08-11 20:47:56 +00:00  
				
					
						
							
							
								 
						
							
								6066340301 
								
							 
						 
						
							
							
								
								Continue to tighten decoding by performing more operand validation.  
							
							... 
							
							
							
							llvm-svn: 137340 
							
						 
						
							2011-08-11 20:21:46 +00:00  
				
					
						
							
							
								 
						
							
								2a50260f2f 
								
							 
						 
						
							
							
								
								ARM STRBT assembly parsing and encoding.  
							
							... 
							
							
							
							llvm-svn: 137337 
							
						 
						
							2011-08-11 20:04:56 +00:00  
				
					
						
							
							
								 
						
							
								3477f2cea5 
								
							 
						 
						
							
							
								
								Tighten decoding of addrmode2 instructions to reject more UNPREDICTABLE cases.  
							
							... 
							
							
							
							llvm-svn: 137325 
							
						 
						
							2011-08-11 19:00:18 +00:00  
				
					
						
							
							
								 
						
							
								0e15b48f3c 
								
							 
						 
						
							
							
								
								Tighten operand decoding of addrmode2 instruction.  The offset register cannot be PC.  
							
							... 
							
							
							
							llvm-svn: 137323 
							
						 
						
							2011-08-11 18:55:42 +00:00  
				
					
						
							
							
								 
						
							
								ed25385227 
								
							 
						 
						
							
							
								
								Improve error checking in the new ARM disassembler.  Patch by James Molloy.  
							
							... 
							
							
							
							llvm-svn: 137320 
							
						 
						
							2011-08-11 18:24:51 +00:00  
				
					
						
							
							
								 
						
							
								d5d6359785 
								
							 
						 
						
							
							
								
								ARM LDRT assembly parsing and encoding.  
							
							... 
							
							
							
							llvm-svn: 137282 
							
						 
						
							2011-08-10 23:43:54 +00:00  
				
					
						
							
							
								 
						
							
								c86a5bd219 
								
							 
						 
						
							
							
								
								Add initial support for decoding NEON instructions in Thumb2 mode.  
							
							... 
							
							
							
							llvm-svn: 137236 
							
						 
						
							2011-08-10 19:01:10 +00:00  
				
					
						
							
							
								 
						
							
								5d69f63bbb 
								
							 
						 
						
							
							
								
								Cleanups based on Nick Lewycky's feedback.  
							
							... 
							
							
							
							llvm-svn: 137224 
							
						 
						
							2011-08-10 17:36:48 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								92b942b1b5 
								
							 
						 
						
							
							
								
								Tighten operand checking of register-shifted-register operands.  
							
							... 
							
							
							
							llvm-svn: 137180 
							
						 
						
							2011-08-09 23:33:27 +00:00  
				
					
						
							
							
								 
						
							
								e008931bf6 
								
							 
						 
						
							
							
								
								Tighten operand checking on memory barrier instructions.  
							
							... 
							
							
							
							llvm-svn: 137176 
							
						 
						
							2011-08-09 23:25:42 +00:00  
				
					
						
							
							
								 
						
							
								3d2e0e9db6 
								
							 
						 
						
							
							
								
								Tighten operand checking on CPS instructions.  
							
							... 
							
							
							
							llvm-svn: 137172 
							
						 
						
							2011-08-09 23:05:39 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								d151b09921 
								
							 
						 
						
							
							
								
								Silence an false-positive warning.  
							
							... 
							
							
							
							llvm-svn: 137154 
							
						 
						
							2011-08-09 21:38:14 +00:00  
				
					
						
							
							
								 
						
							
								7a2401dbf0 
								
							 
						 
						
							
							
								
								Tighten Thumb1 branch predicate decoding.  
							
							... 
							
							
							
							llvm-svn: 137146 
							
						 
						
							2011-08-09 21:07:45 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								dc62e59776 
								
							 
						 
						
							
							
								
								Fix typo in the comment.  
							
							... 
							
							
							
							llvm-svn: 129837 
							
						 
						
							2011-04-19 23:58:52 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								923f3dac01 
								
							 
						 
						
							
							
								
								Fixed the t2PLD and friends disassembly and add two test cases.  
							
							... 
							
							
							
							llvm-svn: 128322 
							
						 
						
							2011-03-26 01:32:48 +00:00  
				
					
						
							
							
								 
						
							
								02e59ad506 
								
							 
						 
						
							
							
								
								Plug a leak by ThumbDisassembler::getInstruction(), thanks to Benjamin Kramer!  
							
							... 
							
							
							
							llvm-svn: 128241 
							
						 
						
							2011-03-24 21:42:55 +00:00  
				
					
						
							
							
								 
						
							
								dd9eb21c3f 
								
							 
						 
						
							
							
								
								Plug a leak in the arm disassembler and put the tests back.  
							
							... 
							
							
							
							llvm-svn: 128238 
							
						 
						
							2011-03-24 21:14:28 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								6f36042557 
								
							 
						 
						
							
							
								
								Add support to match @llvm.prefetch to pld / pldw / pli. rdar://8601536.  
							
							... 
							
							
							
							llvm-svn: 118152 
							
						 
						
							2010-11-03 05:14:24 +00:00  
				
					
						
							
							
								 
						
							
								d100ed858e 
								
							 
						 
						
							
							
								
								Detabify and clean up 80 column violations.  
							
							... 
							
							
							
							llvm-svn: 116454 
							
						 
						
							2010-10-13 23:47:11 +00:00  
				
					
						
							
							
								 
						
							
								3da4255d07 
								
							 
						 
						
							
							
								
								Add ARM Disassembler to the CMake build.  
							
							... 
							
							
							
							llvm-svn: 114949 
							
						 
						
							2010-09-28 11:48:19 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								f3dd8b9487 
								
							 
						 
						
							
							
								
								More IT instruction error-handling improvements from fuzzing.  
							
							... 
							
							
							
							llvm-svn: 101839 
							
						 
						
							2010-04-20 00:15:41 +00:00  
				
					
						
							
							
								 
						
							
								e62b680965 
								
							 
						 
						
							
							
								
								Better error handling of invalid IT mask '0000', instead of just asserting.  
							
							... 
							
							
							
							llvm-svn: 101827 
							
						 
						
							2010-04-19 23:02:58 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								814e69b171 
								
							 
						 
						
							
							
								
								Fixed a nasty layering violation in the edis source  
							
							... 
							
							
							
							code.  It used to #include the enhanced disassembly
information for the targets it supported straight
out of lib/Target/{X86,ARM,...} but now it uses a
new interface provided by MCDisassembler, and (so
far) implemented by X86 and ARM.
Also removed hacky #define-controlled initialization
of targets in edis.  If clients only want edis to
initialize a limited set of targets, they can set
--enable-targets on the configure command line.
llvm-svn: 101179 
							
						 
						
							2010-04-13 21:21:57 +00:00  
				
					
						
							
							
								 
						
							
								dacfd2c6d4 
								
							 
						 
						
							
							
								
								Get rid of traling whitespaces.  No functionality change.  
							
							... 
							
							
							
							llvm-svn: 100404 
							
						 
						
							2010-04-05 04:51:50 +00:00  
				
					
						
							
							
								 
						
							
								dba13e7922 
								
							 
						 
						
							
							
								
								The disassembler impl. of MCDisassembler::getInstruction() was using the pattern  
							
							... 
							
							
							
							uint32_t insn;
  MemoryObject.readBytes(Address, 4, (uint8_t*)&insn, NULL)
to read 4 bytes of memory contents into a 32-bit uint variable.  This leaves the
interpretation of byte order up to the host machine and causes PPC test cases of
arm-tests, neon-tests, and thumb-tests to fail.  Fixed to use a byte array for
reading the memory contents and shift the bytes into place for the 32-bit uint
variable in the ARM case and 16-bit halfword in the Thumb case.
llvm-svn: 100403 
							
						 
						
							2010-04-05 04:46:17 +00:00  
				
					
						
							
							
								 
						
							
								7b999ea7b7 
								
							 
						 
						
							
							
								
								Second try of initial ARM/Thumb disassembler check-in.  It consists of a tablgen  
							
							... 
							
							
							
							backend (ARMDecoderEmitter) which emits the decoder functions for ARM and Thumb,
and the disassembler core which invokes the decoder function and builds up the
MCInst based on the decoded Opcode.
Reviewed by Chris Latter and Bob Wilson.
llvm-svn: 100233 
							
						 
						
							2010-04-02 22:27:38 +00:00  
				
					
						
							
							
								 
						
							
								1b4e8cc69c 
								
							 
						 
						
							
							
								
								--- Reverse-merging r98637 into '.':  
							
							... 
							
							
							
							U    test/CodeGen/ARM/tls2.ll
U    test/CodeGen/ARM/arm-negative-stride.ll
U    test/CodeGen/ARM/2009-10-30.ll
U    test/CodeGen/ARM/globals.ll
U    test/CodeGen/ARM/str_pre-2.ll
U    test/CodeGen/ARM/ldrd.ll
U    test/CodeGen/ARM/2009-10-27-double-align.ll
U    test/CodeGen/Thumb2/thumb2-strb.ll
U    test/CodeGen/Thumb2/ldr-str-imm12.ll
U    test/CodeGen/Thumb2/thumb2-strh.ll
U    test/CodeGen/Thumb2/thumb2-ldr.ll
U    test/CodeGen/Thumb2/thumb2-str_pre.ll
U    test/CodeGen/Thumb2/thumb2-str.ll
U    test/CodeGen/Thumb2/thumb2-ldrh.ll
U    utils/TableGen/TableGen.cpp
U    utils/TableGen/DisassemblerEmitter.cpp
D    utils/TableGen/RISCDisassemblerEmitter.h
D    utils/TableGen/RISCDisassemblerEmitter.cpp
U    Makefile.rules
U    lib/Target/ARM/ARMInstrNEON.td
U    lib/Target/ARM/Makefile
U    lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp
U    lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
U    lib/Target/ARM/AsmPrinter/ARMInstPrinter.h
D    lib/Target/ARM/Disassembler
U    lib/Target/ARM/ARMInstrFormats.td
U    lib/Target/ARM/ARMAddressingModes.h
U    lib/Target/ARM/Thumb2ITBlockPass.cpp
llvm-svn: 98640 
							
						 
						
							2010-03-16 16:59:47 +00:00  
				
					
						
							
							
								 
						
							
								3d9327bd06 
								
							 
						 
						
							
							
								
								Initial ARM/Thumb disassembler check-in.  It consists of a tablgen backend  
							
							... 
							
							
							
							(RISCDisassemblerEmitter) which emits the decoder functions for ARM and Thumb,
and the disassembler core which invokes the decoder function and builds up the
MCInst based on the decoded Opcode.
Added sub-formats to the NeonI/NeonXI instructions to further refine the NEONFrm
instructions to help disassembly.
We also changed the output of the addressing modes to omit the '+' from the
assembler syntax #+/-<imm> or +/-<Rm>.  See, for example, A8.6.57/58/60.
And modified test cases to not expect '+' in +reg or #+num.  For example,
; CHECK:       ldr.w	r9, [r7, #28 ]
llvm-svn: 98637 
							
						 
						
							2010-03-16 16:36:54 +00:00