LLVM  9.0.0svn
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 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_NONE = 0x00, llvm::X86Disassembler::ATTR_64BIT = 0x1 << 0, llvm::X86Disassembler::ATTR_XS = 0x1 << 1, llvm::X86Disassembler::ATTR_XD = 0x1 << 2,
  llvm::X86Disassembler::ATTR_REXW = 0x1 << 3, llvm::X86Disassembler::ATTR_OPSIZE = 0x1 << 4, llvm::X86Disassembler::ATTR_ADSIZE = 0x1 << 5, llvm::X86Disassembler::ATTR_VEX = 0x1 << 6,
  llvm::X86Disassembler::ATTR_VEXL = 0x1 << 7, llvm::X86Disassembler::ATTR_EVEX = 0x1 << 8, llvm::X86Disassembler::ATTR_EVEXL2 = 0x1 << 9, llvm::X86Disassembler::ATTR_EVEXK = 0x1 << 10,
  llvm::X86Disassembler::ATTR_EVEXKZ = 0x1 << 11, llvm::X86Disassembler::ATTR_EVEXB = 0x1 << 12, llvm::X86Disassembler::ATTR_max = 0x1 << 13
}
 
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

◆ 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 335 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 344 of file X86DisassemblerDecoderCommon.h.

Referenced by readOperands(), and translateOperand().

◆ CONTEXTS_STR

#define CONTEXTS_STR   "x86DisassemblerContexts"

Definition at line 36 of file X86DisassemblerDecoderCommon.h.

◆ CONTEXTS_SYM

#define CONTEXTS_SYM   x86DisassemblerContexts

Definition at line 25 of file X86DisassemblerDecoderCommon.h.

Referenced by contextForAttrs().

◆ ENCODINGS

#define ENCODINGS

Definition at line 354 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [1/4]

#define ENUM_ENTRY (   n,
  r,
 
)    n,

Definition at line 440 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [2/4]

#define ENUM_ENTRY (   n)    n,

Definition at line 440 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [3/4]

#define ENUM_ENTRY (   n,
 
)    n,

Definition at line 440 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [4/4]

#define ENUM_ENTRY (   n,
 
)    n,

Definition at line 440 of file X86DisassemblerDecoderCommon.h.

◆ INSTRUCTION_CONTEXTS

#define INSTRUCTION_CONTEXTS

Definition at line 72 of file X86DisassemblerDecoderCommon.h.

◆ INSTRUCTIONS_STR

#define INSTRUCTIONS_STR   "x86DisassemblerInstrSpecifiers"

Definition at line 35 of file X86DisassemblerDecoderCommon.h.

◆ INSTRUCTIONS_SYM

#define INSTRUCTIONS_SYM   x86DisassemblerInstrSpecifiers

Definition at line 24 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, r, d)

Definition at line 321 of file X86DisassemblerDecoderCommon.h.

◆ ONEBYTE_STR

#define ONEBYTE_STR   "x86DisassemblerOneByteOpcodes"

Definition at line 37 of file X86DisassemblerDecoderCommon.h.

◆ ONEBYTE_SYM

#define ONEBYTE_SYM   x86DisassemblerOneByteOpcodes

Definition at line 26 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

◆ THREEBYTE38_STR

#define THREEBYTE38_STR   "x86DisassemblerThreeByte38Opcodes"

Definition at line 39 of file X86DisassemblerDecoderCommon.h.

◆ THREEBYTE38_SYM

#define THREEBYTE38_SYM   x86DisassemblerThreeByte38Opcodes

Definition at line 28 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

◆ THREEBYTE3A_STR

#define THREEBYTE3A_STR   "x86DisassemblerThreeByte3AOpcodes"

Definition at line 40 of file X86DisassemblerDecoderCommon.h.

◆ THREEBYTE3A_SYM

#define THREEBYTE3A_SYM   x86DisassemblerThreeByte3AOpcodes

Definition at line 29 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

◆ THREEDNOW_MAP_STR

#define THREEDNOW_MAP_STR   "x86Disassembler3DNowOpcodes"

Definition at line 44 of file X86DisassemblerDecoderCommon.h.

◆ THREEDNOW_MAP_SYM

#define THREEDNOW_MAP_SYM   x86Disassembler3DNowOpcodes

Definition at line 33 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

◆ TWOBYTE_STR

#define TWOBYTE_STR   "x86DisassemblerTwoByteOpcodes"

Definition at line 38 of file X86DisassemblerDecoderCommon.h.

◆ TWOBYTE_SYM

#define TWOBYTE_SYM   x86DisassemblerTwoByteOpcodes

Definition at line 27 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

◆ TYPES

#define TYPES

Definition at line 404 of file X86DisassemblerDecoderCommon.h.

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

◆ XOP8_MAP_STR

#define XOP8_MAP_STR   "x86DisassemblerXOP8Opcodes"

Definition at line 41 of file X86DisassemblerDecoderCommon.h.

◆ XOP8_MAP_SYM

#define XOP8_MAP_SYM   x86DisassemblerXOP8Opcodes

Definition at line 30 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

◆ XOP9_MAP_STR

#define XOP9_MAP_STR   "x86DisassemblerXOP9Opcodes"

Definition at line 42 of file X86DisassemblerDecoderCommon.h.

◆ XOP9_MAP_SYM

#define XOP9_MAP_SYM   x86DisassemblerXOP9Opcodes

Definition at line 31 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

◆ XOPA_MAP_STR

#define XOPA_MAP_STR   "x86DisassemblerXOPAOpcodes"

Definition at line 43 of file X86DisassemblerDecoderCommon.h.

◆ XOPA_MAP_SYM

#define XOPA_MAP_SYM   x86DisassemblerXOPAOpcodes

Definition at line 32 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().