llvm-project/llvm/lib/Target/X86/Disassembler
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
..
CMakeLists.txt build/CMake: Finish removal of add_llvm_library_dependencies. 2011-11-29 19:25:30 +00:00
LLVMBuild.txt Reuse the enum names from X86Desc in the X86Disassembler. 2012-02-11 14:50:54 +00:00
Makefile
X86Disassembler.cpp Update the X86 disassembler to use xacquire and xrelease when appropriate. 2013-06-20 22:32:18 +00:00
X86Disassembler.h Remove edis - the enhanced disassembler. Fixes PR14654. 2012-12-19 19:55:47 +00:00
X86DisassemblerDecoder.c Update the X86 disassembler to use xacquire and xrelease when appropriate. 2013-06-20 22:32:18 +00:00
X86DisassemblerDecoder.h Update the X86 disassembler to use xacquire and xrelease when appropriate. 2013-06-20 22:32:18 +00:00
X86DisassemblerDecoderCommon.h Add a new compression type to ModRM table that detects when the memory modRM byte represent 8 instructions and the reg modRM byte represents up to 64 instructions. Reduces modRM table from 43k entreis to 25k entries. Based on a patch from Manman Ren. 2012-09-13 05:45:42 +00:00