Craig Topper 
							
						 
					 
					
						
						
							
						
						5a2c607153 
					 
					
						
						
							
							Add more indirection to the disassembler tables to reduce amount of space used to store the operand types and encodings. Store only the unique combinations in a separate table and store indices in the instruction table. Saves about 32K of static data.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161101  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-08-01 07:39:18 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						19dbe2f5f0 
					 
					
						
						
							
							Use uint8_t to store the InstructionContext table. Saves 768 bytes of static data.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161034  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-07-31 06:15:39 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						de9e333e18 
					 
					
						
						
							
							Tidy up. Move for loop index declarations into for statements. Use unsigned instead of uint16_t for loop indices. Use unsigned instead of uint32_t for arguments to raw_ostream.indent.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161033  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-07-31 06:02:05 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						e08789f5e2 
					 
					
						
						
							
							Tidy up function argument formatting.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161032  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-07-31 05:42:02 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						9840009ff8 
					 
					
						
						
							
							Remove trailing whitespace  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161030  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-07-31 05:27:01 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						991271d9c4 
					 
					
						
						
							
							Use uint8_t instead of enums to store values in X86 disassembler table. Shaves 150k off the size of X86DisassemblerDecoder.o  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151995  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-03-04 02:16: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 
						 
				 
			
				
					
						
							
							
								Ahmed Charles 
							
						 
					 
					
						
						
							
						
						b0934ab7d8 
					 
					
						
						
							
							Remove dead code. Improve llvm_unreachable text. Simplify some control flow.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150918  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-02-19 11:37:01 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						953362cdfb 
					 
					
						
						
							
							Reuse the enum names from X86Desc in the X86Disassembler.  
						
						... 
						
						
						
						This requires some gymnastics to make it available for C code. Remove the names
from the disassembler tables, making them relocation free.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150303  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-02-11 14:50:54 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						f41ab77847 
					 
					
						
						
							
							More tweaks to get the size of the X86 disassembler tables down.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150167  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-02-09 08:58:07 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						ce8f4c58d8 
					 
					
						
						
							
							Flatten some of the arrays in the X86 disassembler tables to reduce space needed to store pointers on 64-bit hosts and reduce relocations needed at startup. Part of PR11953.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150161  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-02-09 07:45:30 +00:00 
						 
				 
			
				
					
						
							
							
								David Blaikie 
							
						 
					 
					
						
						
							
						
						fdebc38523 
					 
					
						
						
							
							Remove unreachable code. (replace with llvm_unreachable to help GCC where necessary)  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148284  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2012-01-17 04:43:56 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						c8eb880a7f 
					 
					
						
						
							
							More AVX2 instructions and their intrinsics.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143895  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-11-06 23:04:08 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						29480fd798 
					 
					
						
						
							
							Fix disassembling of popcntw. Also remove some code that says it accounts for 64BIT_REXW_XD not existing, but it does exist.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141642  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-10-11 04:34:23 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						25f6dfd108 
					 
					
						
						
							
							Revert part of r141274. Only need to change encoding for xchg %eax, %eax in 64-bit mode. This is because in 64-bit mode xchg %eax, %eax implies zeroing the upper 32-bits of RAX which makes it not a NOP. In 32-bit mode using NOP encoding is fine.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141353  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-10-07 05:35:38 +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 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						42fbe9aa06 
					 
					
						
						
							
							Fix typo in r140954.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140962  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-10-02 04:54:26 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						e1b4a1a07e 
					 
					
						
						
							
							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.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140954  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-10-01 19:54:56 +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 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						842f58f9be 
					 
					
						
						
							
							Fix disassembling of PAUSE instruction. Fixes PR10900. Also fixed NOP disassembling to ignore OpSize and REX.W.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139484  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-09-11 20:23:20 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						5ffedb9352 
					 
					
						
						
							
							Make IC_VEX* not inherit from IC_*. Prevents instructions with no VEX form from disassembling to their non-VEX form. Also prevents weak filter collisons that were keeping valid VEX instructions from decoding properly. Make VEX_L* not inherit from VEX_* because the VEX.L bit always important. This stops packed int VEX encodings from being disassembled when specified with VEX.L=1. Fixes PR10831 and PR10806.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138997  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-09-02 04:17:54 +00:00 
						 
				 
			
				
					
						
							
							
								Craig Topper 
							
						 
					 
					
						
						
							
						
						113061d39b 
					 
					
						
						
							
							Give ATTR_VEX higher priority when generating the disassembler context table. Fixes disassembling of VEX instructions with 'pp'=00. Fixes subset of PR10678.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138552  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-08-25 07:42:00 +00:00 
						 
				 
			
				
					
						
							
							
								Joerg Sonnenberger 
							
						 
					 
					
						
						
							
						
						4a8ac8de1d 
					 
					
						
						
							
							Add support for the VIA PadLock instructions.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128826  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-04-04 16:58:13 +00:00 
						 
				 
			
				
					
						
							
							
								Joerg Sonnenberger 
							
						 
					 
					
						
						
							
						
						39d7caea69 
					 
					
						
						
							
							Use array_lengthof  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128823  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-04-04 16:25:38 +00:00 
						 
				 
			
				
					
						
							
							
								Joerg Sonnenberger 
							
						 
					 
					
						
						
							
						
						db37e40723 
					 
					
						
						
							
							Change loops to derive the number of tables automatically  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128818  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-04-04 14:42:22 +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 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						86c69c570c 
					 
					
						
						
							
							Constify another 2 disassembler tables.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117208  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-23 09:28:42 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						4d1dca92bd 
					 
					
						
						
							
							Make the disassembler tables const so they end up in read-only memory.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117206  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-23 09:10:44 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						a3ac427507 
					 
					
						
						
							
							Make some symbols static, move classes into anonymous namespaces.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117111  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-10-22 17:35:07 +00:00 
						 
				 
			
				
					
						
							
							
								Dan Gohman 
							
						 
					 
					
						
						
							
						
						b35798347e 
					 
					
						
						
							
							Fix a bunch of namespace polution.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101376  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-04-15 17:08:50 +00:00 
						 
				 
			
				
					
						
							
							
								Daniel Dunbar 
							
						 
					 
					
						
						
							
						
						e5976b8c5c 
					 
					
						
						
							
							Suppress compiler warning.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91959  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-12-23 00:45:10 +00:00 
						 
				 
			
				
					
						
							
							
								Nuno Lopes 
							
						 
					 
					
						
						
							
						
						014dc70907 
					 
					
						
						
							
							fix build and while at it remove a redudant include  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91774  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-12-19 11:52:18 +00:00 
						 
				 
			
				
					
						
							
							
								Daniel Dunbar 
							
						 
					 
					
						
						
							
						
						8783087f69 
					 
					
						
						
							
							More bzero -> memset that I missed.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91757  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2009-12-19 04:16:57 +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