Craig Topper 
							
						 
					 
					
						
						
							
						
						46aa7fb720 
					 
					
						
						
							
							[x86] Switch PAUSE instruction to use XS prefix instead of HasREPPrefix. Remove HasREPPrefix support from disassembler table generator since its now only used by CodeGenOnly instructions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201767  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-02-20 07:59:43 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						611c2c3804 
					 
					
						
						
							
							Remove unused method declaration.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201301  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-02-13 07:12:40 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						1ee7e39dd4 
					 
					
						
						
							
							Remove filtering concept from X86 disassembler table generation. It's no longer necessary.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201299  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-02-13 07:07:16 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						cfd14e6aea 
					 
					
						
						
							
							Remove special case filtering for instructions with lock prefix as they are all marked with isCodeGenOnly already.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201216  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-02-12 08:09:20 +00:00 
						 
				 
			
				
					
						
							
							
								NAKAMURA Takumi 
							
						 
					 
					
						
						
							
						
						3328a1dadc 
					 
					
						
						
							
							TableGen/X86RecognizableInstr.h: Prune out-of-date "@param isSSE". [-Wdocumentation]  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200628  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-02-02 10:53:36 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						6b6dfa5c5a 
					 
					
						
						
							
							Merge x86 HasOpSizePrefix/HasOpSize16Prefix into a 2-bit OpSize field with 0 meaning no 0x66 prefix in any mode. Rename Opsize16->OpSize32 and OpSize->OpSize16. The classes now refer to their operand size rather than the mode in which they need a 0x66 prefix. Hopefully can merge REX_W into this as OpSize64.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200626  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-02-02 09:25:09 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						1415ca1781 
					 
					
						
						
							
							Merge HasVEXPrefix/HasEVEXPrefix/HasXOPPrefix into a 2-bit 'encoding' field in TSFlags.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200624  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-02-02 07:08:01 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						f0b161d774 
					 
					
						
						
							
							Separate x86 opcode maps and 0x66/0xf2/0xf3 prefixes from each other in the TSFlags. This greatly simplifies the switch statements in the disassembler tables and the code emitters.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200522  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-01-31 08:47:06 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						45b8e5fa49 
					 
					
						
						
							
							Move REP out of the Prefix field of the X86 format. Give it its own bit. It had special handling anyway and this enables a future patch.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200520  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-01-31 07:00:55 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						38e6f7301d 
					 
					
						
						
							
							Simplify x86 disassembler table handling of when to use TYPE_Rv/TYPE_R16/TYPE_R32 now that HasOpSizePrefix only means 16-bit instructions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199295  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-01-15 05:02:02 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						c8fd2c57c8 
					 
					
						
						
							
							The rest of r198588. Remove SegOvrBits from X86 TSFlags since they weren't being used.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198589  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-01-06 06:57:27 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						527f132627 
					 
					
						
						
							
							Add a new x86 specific instruction flag to force some isCodeGenOnly instructions to go through to the disassembler tables without resorting to string matches. Apply flag to all _REV instructions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198543  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-01-05 04:17:28 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						163868fec5 
					 
					
						
						
							
							Remove unused HasFROperands field from disassembler.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198332  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-01-02 18:44:21 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						e61c70a085 
					 
					
						
						
							
							Remove unused function argument.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198291  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2014-01-02 03:58:45 +00:00 
						 
				 
			
				
					
						
							
							
								Elena Demikhovsky 
							
						 
					 
					
						
						
							
						
						633f98bdfa 
					 
					
						
						
							
							AVX-512: added VPCONFLICT instruction and intrinsics,  
						
						... 
						
						
						
						added EVEX_KZ to tablegen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193959  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-11-03 13:46:31 +00:00 
						 
				 
			
				
					
						
							
							
								Elena Demikhovsky 
							
						 
					 
					
						
						
							
						
						c18f4efc5d 
					 
					
						
						
							
							Added encoding prefixes for KNL instructions (EVEX).  
						
						... 
						
						
						
						Added 512-bit operands printing.
Added instruction formats for KNL instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187324  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2013-07-28 08:28:38 +00:00 
						 
				 
			
				
					
						
							
							
								Chandler Carruth 
							
						 
					 
					
						
						
							
						
						4ffd89fa4d 
					 
					
						
						
							
							Sort the #include lines for utils/...  
						
						... 
						
						
						
						I've tried to find main moudle headers where possible, but the TableGen
stuff may warrant someone else looking at it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169251  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-12-04 10:37:14 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						8a312fb3aa 
					 
					
						
						
							
							Remove code for setting the VEX L-bit as a function of operand size from the code emitters and the disassembler table builder. Fix a couple instructions that were still missing VEX_L.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164204  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-09-19 06:37:45 +00:00 
						 
				 
			
				
					
						
							
							
								Dmitri Gribenko 
							
						 
					 
					
						
						
							
						
						2d9eb72178 
					 
					
						
						
							
							Fix Doxygen issues:  
						
						... 
						
						
						
						* wrap code blocks in \code ... \endcode;
* refer to parameter names in paragraphs correctly (\arg is not what most
  people want -- it starts a new paragraph).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163790  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-09-13 12:34:29 +00:00 
						 
				 
			
				
					
						
							
							
								Dmitri Gribenko 
							
						 
					 
					
						
						
							
						
						a00b80b04c 
					 
					
						
						
							
							Fix a bunch of -Wdocumentation warnings.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162446  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-08-23 16:54:08 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						5aba78bd80 
					 
					
						
						
							
							Update GATHER instructions to support 2 read-write operands. Patch from myself and Manman Ren.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160110  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-07-12 06:52:41 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						930a1ebd92 
					 
					
						
						
							
							X86 disassembler support for jcxz, jecxz, and jrcxz. Fixes PR11643. Patch by Kay Tiong Khoo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151510  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-02-27 01:54:29 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						e6a3a2990e 
					 
					
						
						
							
							Add FMA4 instructions to disassembler.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147367  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-12-30 05:20:36 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						b53fa8bf19 
					 
					
						
						
							
							Add X86 BZHI instruction as well as BMI2 feature detection.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142122  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-10-16 07:55:05 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						17730847d5 
					 
					
						
						
							
							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  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142105  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-10-16 03:51:13 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						6744a17dcf 
					 
					
						
						
							
							Add support in the disassembler for ignoring the L-bit on certain VEX instructions. Mark instructions that have this behavior. Fixes PR10676.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141065  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-10-04 06:30:42 +00:00 
						 
				 
			
				
					
						
							
							
								Peter Collingbourne 
							
						 
					 
					
						
						
							
						
						7c78888887 
					 
					
						
						
							
							Move TableGen's parser and entry point into a library  
						
						... 
						
						
						
						This is the first step towards splitting LLVM and Clang's tblgen executables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140951  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-10-01 16:41:13 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						4da632e6e0 
					 
					
						
						
							
							Don't allow 32-bit only instructions to be disassembled in 64-bit mode. Fixes part of PR10700.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140370  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-09-23 06:57:25 +00:00 
						 
				 
			
				
					
						
							
							
								Eli Friedman 
							
						 
					 
					
						
						
							
						
						7105259ce8 
					 
					
						
						
							
							Make the disassembler able to disassemble a bunch of instructions with names in the TableGen files containing "64" on x86-32.  This includes a bunch of x87 instructions, like fld, and a bunch of SSSE3 instructions on MMX registers like pshufb.  Part of PR8873.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135337  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-07-16 02:41:28 +00:00 
						 
				 
			
				
					
						
							
							
								Sean Callanan 
							
						 
					 
					
						
						
							
						
						a21e2eae3d 
					 
					
						
						
							
							X86 table-generator and disassembler support for the AVX  
						
						... 
						
						
						
						instruction set.  This code adds support for the VEX prefix
and for the YMM registers accessible on AVX-enabled
architectures.  Instruction table support that enables AVX
instructions for the disassembler is in an upcoming patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127644  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-03-15 01:23:15 +00:00 
						 
				 
			
				
					
						
							
							
								Michael J. Spencer 
							
						 
					 
					
						
						
							
						
						3cc52ea33c 
					 
					
						
						
							
							I swear I did a make clean and make before committing all this...  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120304  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-29 18:47:54 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						c240bb0ede 
					 
					
						
						
							
							factor the operand list (and related fields/operations) out of  
						
						... 
						
						
						
						CodeGenInstruction into its own helper class.  No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117893  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-01 04:03:32 +00:00 
						 
				 
			
				
					
						
							
							
								Bruno Cardoso Lopes 
							
						 
					 
					
						
						
							
						
						99405df044 
					 
					
						
						
							
							Reapply r105521, this time appending "LLU" to 64 bit  
						
						... 
						
						
						
						immediates to avoid breaking the build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105652  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-08 22:51:23 +00:00 
						 
				 
			
				
					
						
							
							
								Chris Lattner 
							
						 
					 
					
						
						
							
						
						1087f54ddb 
					 
					
						
						
							
							revert r105521, which is breaking the buildbots with stuff like this:  
						
						... 
						
						
						
						In file included from X86InstrInfo.cpp:16:
X86GenInstrInfo.inc:2789: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2790: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2792: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2793: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2808: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2809: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2816: error: integer constant is too large for 'long' type
X86GenInstrInfo.inc:2817: error: integer constant is too large for 'long' type
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105524  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-05 04:17:30 +00:00 
						 
				 
			
				
					
						
							
							
								Bruno Cardoso Lopes 
							
						 
					 
					
						
						
							
						
						3eca98bb3a 
					 
					
						
						
							
							Initial AVX support for some instructions. No patterns matched  
						
						... 
						
						
						
						yet, only assembly encoding support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105521  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-06-05 03:53:24 +00:00 
						 
				 
			
				
					
						
							
							
								Sean Callanan 
							
						 
					 
					
						
						
							
						
						8ed9f51663 
					 
					
						
						
							
							Table-driven disassembler for the X86 architecture (16-, 32-, and 64-bit  
						
						... 
						
						
						
						incarnations), integrated into the MC framework.  
The disassembler is table-driven, using a custom TableGen backend to 
generate hierarchical tables optimized for fast decode.  The disassembler 
consumes MemoryObjects and produces arrays of MCInsts, adhering to the 
abstract base class MCDisassembler (llvm/MC/MCDisassembler.h).
The disassembler is documented in detail in
- lib/Target/X86/Disassembler/X86Disassembler.cpp (disassembler runtime)
- utils/TableGen/DisassemblerEmitter.cpp (table emitter)
You can test the disassembler by running llvm-mc -disassemble for i386
or x86_64 targets.  Please let me know if you encounter any problems
with it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91749  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-12-19 02:59:52 +00:00