Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								7c10252943 
								
							 
						 
						
							
							
								
								[X86] Don't print 'dword ptr' or 'qword ptr' on the operand to some of the LEA variants in Intel syntax. The memory operand is inherently unsized.  
							
							 
							
							... 
							
							
							
							llvm-svn: 225432 
							
						 
						
							2015-01-08 07:41:30 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								9155118602 
								
							 
						 
						
							
							
								
								Remove need for MODIFIER_OPCODE in the disassembler tables. AddRegFrms are really more like OrRegFrm so we don't need a difference since we can just mask bits.  
							
							 
							
							... 
							
							
							
							llvm-svn: 198278 
							
						 
						
							2014-01-01 15:29:32 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								9e3e38ae3f 
								
							 
						 
						
							
							
								
								Add XOP disassembler support. Fixes PR13933.  
							
							 
							
							... 
							
							
							
							llvm-svn: 191874 
							
						 
						
							2013-10-03 05:17:48 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								93a3d5973d 
								
							 
						 
						
							
							
								
								Add a few more FMA4 disassembler test cases to match the scalar set with regards to combinations of L and W-bits.  
							
							 
							
							... 
							
							
							
							llvm-svn: 191650 
							
						 
						
							2013-09-30 02:50:51 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								ed59dd34fd 
								
							 
						 
						
							
							
								
								Various x86 disassembler fixes.  
							
							 
							
							... 
							
							
							
							Add VEX_LIG to scalar FMA4 instructions.
Use VEX_LIG in some of the inheriting checks in disassembler table generator.
Make use of VEX_L_W, VEX_L_W_XS, VEX_L_W_XD contexts.
Don't let VEX_L_W, VEX_L_W_XS, VEX_L_W_XD, VEX_L_W_OPSIZE inherit from their non-L forms unless VEX_LIG is set.
Let VEX_L_W, VEX_L_W_XS, VEX_L_W_XD, VEX_L_W_OPSIZE inherit from all of their non-L or non-W cases.
Increase ranking on VEX_L_W, VEX_L_W_XS, VEX_L_W_XD, VEX_L_W_OPSIZE so they get chosen over non-L/non-W forms.
llvm-svn: 191649 
							
						 
						
							2013-09-30 02:46:36 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								db90f65bbe 
								
							 
						 
						
							
							
								
								Don't let x86 asm printer use the no operand movsd alias. It should use the normal movsl instead.  
							
							 
							
							... 
							
							
							
							llvm-svn: 186924 
							
						 
						
							2013-07-23 01:50:47 +00:00  
						
					 
				
					
						
							
							
								 
								Kevin Enderby
							
						 
						
							 
							
							
							
							
								
							
							
								35fd79237f 
								
							 
						 
						
							
							
								
								Update the X86 disassembler to use xacquire and xrelease when appropriate.  
							
							 
							
							... 
							
							
							
							This is a bit tricky as the xacquire and xrelease hints use the same bytes,
0xf2 and 0xf3, as the repne and rep prefixes.
Fortunately llvm has different llvm MCInst Opcode enums for rep/xrelease
and repne/xacquire. So to make this work a boolean was added the
InternalInstruction struct as part of the Prefix state which is set with the
added logic in readPrefixes() when decoding an instruction to determine
if these prefix bytes are to be disassembled as xacquire or xrelease.  Then
we let the matcher pick the normal prefix instructionID and we change the
Opcode after that when it is set into the MCInst being created.
rdar://11019859
llvm-svn: 184490 
							
						 
						
							2013-06-20 22:32:18 +00:00  
						
					 
				
					
						
							
							
								 
								Dave Zarzycki
							
						 
						
							 
							
							
							
							
								
							
							
								07fabeecad 
								
							 
						 
						
							
							
								
								x86 -- disassemble the REP/REPNE prefix when needed  
							
							 
							
							... 
							
							
							
							This fixes Apple bug: 13493622
llvm-svn: 177887 
							
						 
						
							2013-03-25 18:59:38 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								4f1c7256f9 
								
							 
						 
						
							
							
								
								Fix suffix handling for parsing and printing of cvtsi2ss, cvtsi2sd, cvtss2si, cvttss2si, cvtsd2si, and cvttsd2si to match gas behavior.  
							
							 
							
							... 
							
							
							
							cvtsi2* should parse with an 'l' or 'q' suffix or no suffix at all. No suffix should be treated the same as 'l' suffix. Printing should always print a suffix. Previously we didn't parse or print an 'l' suffix.
cvtt*2si/cvt*2si should parse with an 'l' or 'q' suffix or not suffix at all. No suffix should use the destination register size to choose encoding. Printing should not print a suffix.
Original 'l' suffix issue with cvtsi2* pointed out by Michael Kuperstein.
llvm-svn: 171668 
							
						 
						
							2013-01-06 20:39:29 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								c7690ac7ac 
								
							 
						 
						
							
							
								
								Make l/q suffixes on AVX forms of scalar convert instructions consistent with their non-AVX forms.  
							
							 
							
							... 
							
							
							
							llvm-svn: 160775 
							
						 
						
							2012-07-26 07:48:28 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								be41e2daa6 
								
							 
						 
						
							
							
								
								Reverse assembler/disassembler operand order for gather instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 159983 
							
						 
						
							2012-07-10 06:38:33 +00:00  
						
					 
				
					
						
							
							
								 
								Manman Ren
							
						 
						
							 
							
							
							
							
								
							
							
								98a5bf24a9 
								
							 
						 
						
							
							
								
								X86: add more GATHER intrinsics in LLVM  
							
							 
							
							... 
							
							
							
							Corrected type for index of llvm.x86.avx2.gather.d.pd.256
  from 256-bit to 128-bit.
Corrected types for src|dst|mask of llvm.x86.avx2.gather.q.ps.256
  from 256-bit to 128-bit.
Support the following intrinsics:
  llvm.x86.avx2.gather.d.q, llvm.x86.avx2.gather.q.q
  llvm.x86.avx2.gather.d.q.256, llvm.x86.avx2.gather.q.q.256
  llvm.x86.avx2.gather.d.d, llvm.x86.avx2.gather.q.d
  llvm.x86.avx2.gather.d.d.256, llvm.x86.avx2.gather.q.d.256
llvm-svn: 159402 
							
						 
						
							2012-06-29 00:54:20 +00:00  
						
					 
				
					
						
							
							
								 
								Manman Ren
							
						 
						
							 
							
							
							
							
								
							
							
								a09820414a 
								
							 
						 
						
							
							
								
								X86: add GATHER intrinsics (AVX2) in LLVM  
							
							 
							
							... 
							
							
							
							Support the following intrinsics:
llvm.x86.avx2.gather.d.pd, llvm.x86.avx2.gather.q.pd
llvm.x86.avx2.gather.d.pd.256, llvm.x86.avx2.gather.q.pd.256
llvm.x86.avx2.gather.d.ps, llvm.x86.avx2.gather.q.ps
llvm.x86.avx2.gather.d.ps.256, llvm.x86.avx2.gather.q.ps.256
Modified Disassembler to handle VSIB addressing mode.
llvm-svn: 159221 
							
						 
						
							2012-06-26 19:47:59 +00:00  
						
					 
				
					
						
							
							
								 
								Kevin Enderby
							
						 
						
							 
							
							
							
							
								
							
							
								987cef1fe2 
								
							 
						 
						
							
							
								
								Change the second line of the test added for r152414 to use CHECK-NEXT.  
							
							 
							
							... 
							
							
							
							Suggestion by Bill Wendling!
llvm-svn: 152582 
							
						 
						
							2012-03-12 21:38:09 +00:00  
						
					 
				
					
						
							
							
								 
								Kevin Enderby
							
						 
						
							 
							
							
							
							
								
							
							
								014e1cde5f 
								
							 
						 
						
							
							
								
								Fix the x86 disassembler to at least print the lock prefix if it is the first  
							
							 
							
							... 
							
							
							
							prefix.  Added a FIXME to remind us this still does not work when it is not the
first prefix.
llvm-svn: 152414 
							
						 
						
							2012-03-09 17:52:49 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								6491c8020e 
								
							 
						 
						
							
							
								
								X86 disassembler support for jcxz, jecxz, and jrcxz. Fixes PR11643. Patch by Kay Tiong Khoo.  
							
							 
							
							... 
							
							
							
							llvm-svn: 151510 
							
						 
						
							2012-02-27 01:54:29 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								66a3597a4a 
								
							 
						 
						
							
							
								
								Add vmfunc instruction to X86 assembler and disassembler.  
							
							 
							
							... 
							
							
							
							llvm-svn: 150899 
							
						 
						
							2012-02-19 01:39:49 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								ed7aa46366 
								
							 
						 
						
							
							
								
								Add X86 assembler and disassembler support for AMD SVM instructions. Original patch by Kay Tiong Khoo. Few tweaks by me for code density and to reduce replication.  
							
							 
							
							... 
							
							
							
							llvm-svn: 150873 
							
						 
						
							2012-02-18 08:19:49 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								2ba766ae84 
								
							 
						 
						
							
							
								
								Add disassembler support for VPERMIL2PD and VPERMIL2PS.  
							
							 
							
							... 
							
							
							
							llvm-svn: 147368 
							
						 
						
							2011-12-30 06:23:39 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								03a0beda88 
								
							 
						 
						
							
							
								
								Add FMA4 instructions to disassembler.  
							
							 
							
							... 
							
							
							
							llvm-svn: 147367 
							
						 
						
							2011-12-30 05:20:36 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								d773607eee 
								
							 
						 
						
							
							
								
								Fix execution domains for PS/PD FMA3 instructions. Add SS/SD forms o FMA3 instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 147353 
							
						 
						
							2011-12-29 20:43:40 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								8cab06a214 
								
							 
						 
						
							
							
								
								Expose FMA3 instructions to the disassembler.  
							
							 
							
							... 
							
							
							
							llvm-svn: 147351 
							
						 
						
							2011-12-29 20:03:14 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								b05d9e9bea 
								
							 
						 
						
							
							
								
								Add X86 SARX, SHRX, and SHLX instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 142779 
							
						 
						
							2011-10-23 22:18:24 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								980d59832a 
								
							 
						 
						
							
							
								
								Add X86 RORX instruction  
							
							 
							
							... 
							
							
							
							llvm-svn: 142741 
							
						 
						
							2011-10-23 07:34:00 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								e94d277db8 
								
							 
						 
						
							
							
								
								Add X86 MULX instruction for disassembler.  
							
							 
							
							... 
							
							
							
							llvm-svn: 142738 
							
						 
						
							2011-10-23 00:33:32 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								ef309c3384 
								
							 
						 
						
							
							
								
								Rename PEXTR to PEXT. Add intrinsics for BMI instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 142480 
							
						 
						
							2011-10-19 07:48:35 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								96fa597828 
								
							 
						 
						
							
							
								
								Add X86 PEXTR and PDEP instructions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 142141 
							
						 
						
							2011-10-16 16:50:08 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								aea148c366 
								
							 
						 
						
							
							
								
								Add X86 BZHI instruction as well as BMI2 feature detection.  
							
							 
							
							... 
							
							
							
							llvm-svn: 142122 
							
						 
						
							2011-10-16 07:55:05 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								0ae8d4d738 
								
							 
						 
						
							
							
								
								Add X86 INVPCID instruction. Add 32/64-bit predicates to INVEPT, INVVPID, VMREAD, and VMWRITE to remove hack from X86RecognizableInstr.  
							
							 
							
							... 
							
							
							
							llvm-svn: 142117 
							
						 
						
							2011-10-16 07:05:40 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								25ea4e5ad3 
								
							 
						 
						
							
							
								
								Add X86 BEXTR instruction. This instruction uses VEX.vvvv to encode Operand 3 instead of Operand 2 so needs special casing in the disassembler and code emitter. Ultimately, should pass this information from tablegen  
							
							 
							
							... 
							
							
							
							llvm-svn: 142105 
							
						 
						
							2011-10-16 03:51:13 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								27ad12539d 
								
							 
						 
						
							
							
								
								Add support for X86 blsr, blsmsk, and blsi instructions. Required extra work because these are the first VEX encoded instructions to use the reg field as an opcode extension.  
							
							 
							
							... 
							
							
							
							llvm-svn: 142082 
							
						 
						
							2011-10-15 20:46:47 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								965de2c197 
								
							 
						 
						
							
							
								
								Add X86 ANDN instruction. Including instruction selection.  
							
							 
							
							... 
							
							
							
							llvm-svn: 141947 
							
						 
						
							2011-10-14 07:06:56 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								3657fe4b17 
								
							 
						 
						
							
							
								
								Add X86 TZCNT instruction and patterns to select it. Also added core-avx2 processor which is gcc's name for Haswell.  
							
							 
							
							... 
							
							
							
							llvm-svn: 141939 
							
						 
						
							2011-10-14 03:21:46 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								063f55ffdd 
								
							 
						 
						
							
							
								
								Revert r141854 because it was causing failures:  
							
							 
							
							... 
							
							
							
							http://lab.llvm.org:8011/builders/llvm-x86_64-linux/builds/101 
--- Reverse-merging r141854 into '.':
U    test/MC/Disassembler/X86/x86-32.txt
U    test/MC/Disassembler/X86/simple-tests.txt
D    test/CodeGen/X86/bmi.ll
U    lib/Target/X86/X86InstrInfo.td
U    lib/Target/X86/X86ISelLowering.cpp
U    lib/Target/X86/X86.td
U    lib/Target/X86/X86Subtarget.h
llvm-svn: 141857 
							
						 
						
							2011-10-13 07:48:07 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								8cc9388073 
								
							 
						 
						
							
							
								
								Add X86 TZCNT instruction and patterns to select it. Also added core-avx2 processor which is gcc's name for Haswell.  
							
							 
							
							... 
							
							
							
							llvm-svn: 141854 
							
						 
						
							2011-10-13 07:09:14 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								271064e873 
								
							 
						 
						
							
							
								
								Add X86 LZCNT instruction. Including instruction selection support.  
							
							 
							
							... 
							
							
							
							llvm-svn: 141651 
							
						 
						
							2011-10-11 06:44:02 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								a697852386 
								
							 
						 
						
							
							
								
								Fix disassembling of popcntw. Also remove some code that says it accounts for 64BIT_REXW_XD not existing, but it does exist.  
							
							 
							
							... 
							
							
							
							llvm-svn: 141642 
							
						 
						
							2011-10-11 04:34:23 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								fe9179fa4f 
								
							 
						 
						
							
							
								
								Add Ivy Bridge 16-bit floating point conversion instructions for the X86 disassembler.  
							
							 
							
							... 
							
							
							
							llvm-svn: 141505 
							
						 
						
							2011-10-09 07:31:39 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								d9cfddc5cd 
								
							 
						 
						
							
							
								
								Add X86 disassembler support for RDFSBASE, RDGSBASE, WRFSBASE, and WRGSBASE.  
							
							 
							
							... 
							
							
							
							llvm-svn: 141358 
							
						 
						
							2011-10-07 07:02:24 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								bf136764ae 
								
							 
						 
						
							
							
								
								Add X86 disassembler support for XSAVE, XRSTOR, and XSAVEOPT.  
							
							 
							
							... 
							
							
							
							llvm-svn: 141354 
							
						 
						
							2011-10-07 05:53:50 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								f18c896337 
								
							 
						 
						
							
							
								
								Add support in the disassembler for ignoring the L-bit on certain VEX instructions. Mark instructions that have this behavior. Fixes PR10676.  
							
							 
							
							... 
							
							
							
							llvm-svn: 141065 
							
						 
						
							2011-10-04 06:30:42 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								786bdb9e14 
								
							 
						 
						
							
							
								
								Add support for MOVBE and RDRAND instructions for the assembler and disassembler. Includes feature flag checking, but no instrinsic support. Fixes PR10832, PR11026 and PR11027.  
							
							 
							
							... 
							
							
							
							llvm-svn: 141007 
							
						 
						
							2011-10-03 17:28:23 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								0d0be47d03 
								
							 
						 
						
							
							
								
								Treat VEX.vvvv as a 3-bit field outside of 64-bit mode. Prevents access to registers xmm8-xmm15 outside 64-bit mode.  
							
							 
							
							... 
							
							
							
							llvm-svn: 140997 
							
						 
						
							2011-10-03 08:14:29 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								7aea69d949 
								
							 
						 
						
							
							
								
								Fix some Intel syntax disassembly issues with instructions that implicitly use AL/AX/EAX/RAX such as ADD/SUB/ADC/SUBB/XOR/OR/AND/CMP/MOV/TEST.  
							
							 
							
							... 
							
							
							
							llvm-svn: 140974 
							
						 
						
							2011-10-02 21:08:12 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								21c33657d6 
								
							 
						 
						
							
							
								
								Special case disassembler handling of REX.B prefix on NOP instruction to decode as XCHG R8D, EAX instead. Fixes PR10344.  
							
							 
							
							... 
							
							
							
							llvm-svn: 140971 
							
						 
						
							2011-10-02 16:56:09 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								d07a59f288 
								
							 
						 
						
							
							
								
								Fix disassembling of INVEPT and INVVPID to take operands  
							
							 
							
							... 
							
							
							
							llvm-svn: 140955 
							
						 
						
							2011-10-01 21:20:14 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								88cb33e0d4 
								
							 
						 
						
							
							
								
								Fix disassembler handling of CRC32 which is an odd instruction that uses 0xf2 as an opcode extension and allows the opsize prefix. This necessitated adding IC_XD_OPSIZE and IC_64BIT_XD_OPSIZE contexts. Unfortunately, this increases the size of the disassembler tables. Fixes PR10702.  
							
							 
							
							... 
							
							
							
							llvm-svn: 140954 
							
						 
						
							2011-10-01 19:54:56 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								ee8157cb41 
								
							 
						 
						
							
							
								
								Fix mem type for VEX.128 form of VROUNDP*. Remove filter preventing VROUND from being recognized by disassembler.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139691 
							
						 
						
							2011-09-14 06:41:26 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								96e00e5a24 
								
							 
						 
						
							
							
								
								Make disassembling of VBLEND* print immediate as a XMM/YMM register name. Fixes PR10917.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139690 
							
						 
						
							2011-09-14 05:55:28 +00:00  
						
					 
				
					
						
							
							
								 
								Craig Topper
							
						 
						
							 
							
							
							
							
								
							
							
								e98d8a5c84 
								
							 
						 
						
							
							
								
								Remove filter that was preventing MOVDQU/MOVDQA and their VEX forms from being disassembled. Also added encodings for the other register/register form of these instructions. Fixes PR10848.  
							
							 
							
							... 
							
							
							
							llvm-svn: 139588 
							
						 
						
							2011-09-13 06:54:58 +00:00