LLVM  8.0.1
Classes | Namespaces | Macros | Typedefs | Enumerations | Variables
X86DisassemblerDecoderCommon.h File Reference
#include "llvm/Support/DataTypes.h"
Include dependency graph for X86DisassemblerDecoderCommon.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  llvm::X86Disassembler::OperandSpecifier
 The specification for how to extract and interpret one operand. More...
 

Namespaces

 llvm
 This class represents lattice values for constants.
 
 llvm::X86Disassembler
 

Macros

#define INSTRUCTIONS_SYM   x86DisassemblerInstrSpecifiers
 
#define CONTEXTS_SYM   x86DisassemblerContexts
 
#define ONEBYTE_SYM   x86DisassemblerOneByteOpcodes
 
#define TWOBYTE_SYM   x86DisassemblerTwoByteOpcodes
 
#define THREEBYTE38_SYM   x86DisassemblerThreeByte38Opcodes
 
#define THREEBYTE3A_SYM   x86DisassemblerThreeByte3AOpcodes
 
#define XOP8_MAP_SYM   x86DisassemblerXOP8Opcodes
 
#define XOP9_MAP_SYM   x86DisassemblerXOP9Opcodes
 
#define XOPA_MAP_SYM   x86DisassemblerXOPAOpcodes
 
#define THREEDNOW_MAP_SYM   x86Disassembler3DNowOpcodes
 
#define INSTRUCTIONS_STR   "x86DisassemblerInstrSpecifiers"
 
#define CONTEXTS_STR   "x86DisassemblerContexts"
 
#define ONEBYTE_STR   "x86DisassemblerOneByteOpcodes"
 
#define TWOBYTE_STR   "x86DisassemblerTwoByteOpcodes"
 
#define THREEBYTE38_STR   "x86DisassemblerThreeByte38Opcodes"
 
#define THREEBYTE3A_STR   "x86DisassemblerThreeByte3AOpcodes"
 
#define XOP8_MAP_STR   "x86DisassemblerXOP8Opcodes"
 
#define XOP9_MAP_STR   "x86DisassemblerXOP9Opcodes"
 
#define XOPA_MAP_STR   "x86DisassemblerXOPAOpcodes"
 
#define THREEDNOW_MAP_STR   "x86Disassembler3DNowOpcodes"
 
#define ATTRIBUTE_BITS
 
#define ENUM_ENTRY(n, v)   n = v,
 
#define INSTRUCTION_CONTEXTS
 
#define ENUM_ENTRY(n, r, d)   n,
 
#define MODRMTYPES
 
#define ENUM_ENTRY(n)   n,
 
#define CASE_ENCODING_RM
 
#define CASE_ENCODING_VSIB
 
#define ENCODINGS
 
#define ENUM_ENTRY(n, d)   n,
 
#define TYPES
 
#define ENUM_ENTRY(n, d)   n,
 

Typedefs

typedef uint16_t llvm::X86Disassembler::InstrUID
 

Enumerations

enum  llvm::X86Disassembler::attributeBits { llvm::X86Disassembler::ATTR_max }
 
enum  llvm::X86Disassembler::InstructionContext { llvm::X86Disassembler::IC_max }
 
enum  llvm::X86Disassembler::OpcodeType {
  llvm::X86Disassembler::ONEBYTE = 0, llvm::X86Disassembler::TWOBYTE = 1, llvm::X86Disassembler::THREEBYTE_38 = 2, llvm::X86Disassembler::THREEBYTE_3A = 3,
  llvm::X86Disassembler::XOP8_MAP = 4, llvm::X86Disassembler::XOP9_MAP = 5, llvm::X86Disassembler::XOPA_MAP = 6, llvm::X86Disassembler::THREEDNOW_MAP = 7
}
 
enum  llvm::X86Disassembler::ModRMDecisionType { llvm::X86Disassembler::MODRM_max }
 
enum  llvm::X86Disassembler::OperandEncoding { llvm::X86Disassembler::ENCODING_max }
 
enum  llvm::X86Disassembler::OperandType { llvm::X86Disassembler::TYPE_max }
 
enum  llvm::X86Disassembler::DisassemblerMode { llvm::X86Disassembler::MODE_16BIT, llvm::X86Disassembler::MODE_32BIT, llvm::X86Disassembler::MODE_64BIT }
 Decoding mode for the Intel disassembler. More...
 

Variables

static const unsigned llvm::X86Disassembler::X86_MAX_OPERANDS = 6
 

Macro Definition Documentation

◆ ATTRIBUTE_BITS

#define ATTRIBUTE_BITS
Value:
ENUM_ENTRY(ATTR_NONE, 0x00) \
ENUM_ENTRY(ATTR_64BIT, (0x1 << 0)) \
ENUM_ENTRY(ATTR_XS, (0x1 << 1)) \
ENUM_ENTRY(ATTR_XD, (0x1 << 2)) \
ENUM_ENTRY(ATTR_REXW, (0x1 << 3)) \
ENUM_ENTRY(ATTR_OPSIZE, (0x1 << 4)) \
ENUM_ENTRY(ATTR_ADSIZE, (0x1 << 5)) \
ENUM_ENTRY(ATTR_VEX, (0x1 << 6)) \
ENUM_ENTRY(ATTR_VEXL, (0x1 << 7)) \
ENUM_ENTRY(ATTR_EVEX, (0x1 << 8)) \
ENUM_ENTRY(ATTR_EVEXL, (0x1 << 9)) \
ENUM_ENTRY(ATTR_EVEXL2, (0x1 << 10)) \
ENUM_ENTRY(ATTR_EVEXK, (0x1 << 11)) \
ENUM_ENTRY(ATTR_EVEXKZ, (0x1 << 12)) \
ENUM_ENTRY(ATTR_EVEXB, (0x1 << 13))
#define ENUM_ENTRY(n, v)

Definition at line 50 of file X86DisassemblerDecoderCommon.h.

◆ CASE_ENCODING_RM

#define CASE_ENCODING_RM
Value:
case ENCODING_RM: \
case ENCODING_RM_CD2: \
case ENCODING_RM_CD4: \
case ENCODING_RM_CD8: \
case ENCODING_RM_CD16: \
case ENCODING_RM_CD32: \
case ENCODING_RM_CD64

Definition at line 342 of file X86DisassemblerDecoderCommon.h.

Referenced by fixupReg(), readOperands(), and translateOperand().

◆ CASE_ENCODING_VSIB

#define CASE_ENCODING_VSIB
Value:
case ENCODING_VSIB: \
case ENCODING_VSIB_CD2: \
case ENCODING_VSIB_CD4: \
case ENCODING_VSIB_CD8: \
case ENCODING_VSIB_CD16: \
case ENCODING_VSIB_CD32: \
case ENCODING_VSIB_CD64

Definition at line 351 of file X86DisassemblerDecoderCommon.h.

Referenced by readOperands(), and translateOperand().

◆ CONTEXTS_STR

#define CONTEXTS_STR   "x86DisassemblerContexts"

Definition at line 37 of file X86DisassemblerDecoderCommon.h.

◆ CONTEXTS_SYM

#define CONTEXTS_SYM   x86DisassemblerContexts

Definition at line 26 of file X86DisassemblerDecoderCommon.h.

Referenced by contextForAttrs().

◆ ENCODINGS

#define ENCODINGS

Definition at line 361 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [1/5]

#define ENUM_ENTRY (   n,
 
)    n = v,

Definition at line 448 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [2/5]

#define ENUM_ENTRY (   n,
  r,
 
)    n,

Definition at line 448 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [3/5]

#define ENUM_ENTRY (   n)    n,

Definition at line 448 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [4/5]

#define ENUM_ENTRY (   n,
 
)    n,

Definition at line 448 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [5/5]

#define ENUM_ENTRY (   n,
 
)    n,

Definition at line 448 of file X86DisassemblerDecoderCommon.h.

◆ INSTRUCTION_CONTEXTS

#define INSTRUCTION_CONTEXTS

Definition at line 79 of file X86DisassemblerDecoderCommon.h.

◆ INSTRUCTIONS_STR

#define INSTRUCTIONS_STR   "x86DisassemblerInstrSpecifiers"

Definition at line 36 of file X86DisassemblerDecoderCommon.h.

◆ INSTRUCTIONS_SYM

#define INSTRUCTIONS_SYM   x86DisassemblerInstrSpecifiers

Definition at line 25 of file X86DisassemblerDecoderCommon.h.

Referenced by specifierForUID().

◆ MODRMTYPES

#define MODRMTYPES
Value:
ENUM_ENTRY(MODRM_ONEENTRY) \
ENUM_ENTRY(MODRM_SPLITRM) \
ENUM_ENTRY(MODRM_SPLITMISC) \
ENUM_ENTRY(MODRM_SPLITREG) \
ENUM_ENTRY(MODRM_FULL)
#define ENUM_ENTRY(n, v)

Definition at line 328 of file X86DisassemblerDecoderCommon.h.

◆ ONEBYTE_STR

#define ONEBYTE_STR   "x86DisassemblerOneByteOpcodes"

Definition at line 38 of file X86DisassemblerDecoderCommon.h.

◆ ONEBYTE_SYM

#define ONEBYTE_SYM   x86DisassemblerOneByteOpcodes

Definition at line 27 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

◆ THREEBYTE38_STR

#define THREEBYTE38_STR   "x86DisassemblerThreeByte38Opcodes"

Definition at line 40 of file X86DisassemblerDecoderCommon.h.

◆ THREEBYTE38_SYM

#define THREEBYTE38_SYM   x86DisassemblerThreeByte38Opcodes

Definition at line 29 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

◆ THREEBYTE3A_STR

#define THREEBYTE3A_STR   "x86DisassemblerThreeByte3AOpcodes"

Definition at line 41 of file X86DisassemblerDecoderCommon.h.

◆ THREEBYTE3A_SYM

#define THREEBYTE3A_SYM   x86DisassemblerThreeByte3AOpcodes

Definition at line 30 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

◆ THREEDNOW_MAP_STR

#define THREEDNOW_MAP_STR   "x86Disassembler3DNowOpcodes"

Definition at line 45 of file X86DisassemblerDecoderCommon.h.

◆ THREEDNOW_MAP_SYM

#define THREEDNOW_MAP_SYM   x86Disassembler3DNowOpcodes

Definition at line 34 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

◆ TWOBYTE_STR

#define TWOBYTE_STR   "x86DisassemblerTwoByteOpcodes"

Definition at line 39 of file X86DisassemblerDecoderCommon.h.

◆ TWOBYTE_SYM

#define TWOBYTE_SYM   x86DisassemblerTwoByteOpcodes

Definition at line 28 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

◆ TYPES

#define TYPES

Definition at line 410 of file X86DisassemblerDecoderCommon.h.

Referenced by llvm::DWARFUnitIndex::parse().

◆ XOP8_MAP_STR

#define XOP8_MAP_STR   "x86DisassemblerXOP8Opcodes"

Definition at line 42 of file X86DisassemblerDecoderCommon.h.

◆ XOP8_MAP_SYM

#define XOP8_MAP_SYM   x86DisassemblerXOP8Opcodes

Definition at line 31 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

◆ XOP9_MAP_STR

#define XOP9_MAP_STR   "x86DisassemblerXOP9Opcodes"

Definition at line 43 of file X86DisassemblerDecoderCommon.h.

◆ XOP9_MAP_SYM

#define XOP9_MAP_SYM   x86DisassemblerXOP9Opcodes

Definition at line 32 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

◆ XOPA_MAP_STR

#define XOPA_MAP_STR   "x86DisassemblerXOPAOpcodes"

Definition at line 44 of file X86DisassemblerDecoderCommon.h.

◆ XOPA_MAP_SYM

#define XOPA_MAP_SYM   x86DisassemblerXOPAOpcodes

Definition at line 33 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().