LLVM API Documentation

Classes | Namespaces | Defines | 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

namespace  llvm
 

List of target independent CodeGen pass IDs.


namespace  llvm::X86Disassembler

Defines

#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 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 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 ENCODINGS
#define ENUM_ENTRY(n, d)   n,
#define TYPES
#define ENUM_ENTRY(n, d)   n,
#define MODIFIER_TYPES   ENUM_ENTRY(MODIFIER_NONE)
#define ENUM_ENTRY(n)   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
}
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::ModifierType { llvm::X86Disassembler::MODIFIER_max }
enum  llvm::X86Disassembler::DisassemblerMode { llvm::X86Disassembler::MODE_16BIT, llvm::X86Disassembler::MODE_32BIT, llvm::X86Disassembler::MODE_64BIT }

Variables

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

Define Documentation

#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))

Definition at line 48 of file X86DisassemblerDecoderCommon.h.

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 328 of file X86DisassemblerDecoderCommon.h.

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

#define CONTEXTS_STR   "x86DisassemblerContexts"

Definition at line 36 of file X86DisassemblerDecoderCommon.h.

#define CONTEXTS_SYM   x86DisassemblerContexts

Definition at line 26 of file X86DisassemblerDecoderCommon.h.

Referenced by contextForAttrs().

#define ENCODINGS

Definition at line 338 of file X86DisassemblerDecoderCommon.h.

#define ENUM_ENTRY (   n,
 
)    n = v,

Definition at line 496 of file X86DisassemblerDecoderCommon.h.

#define ENUM_ENTRY (   n,
  r,
 
)    n,

Definition at line 496 of file X86DisassemblerDecoderCommon.h.

#define ENUM_ENTRY (   n)    n,

Definition at line 496 of file X86DisassemblerDecoderCommon.h.

#define ENUM_ENTRY (   n,
 
)    n,

Definition at line 496 of file X86DisassemblerDecoderCommon.h.

#define ENUM_ENTRY (   n,
 
)    n,

Definition at line 496 of file X86DisassemblerDecoderCommon.h.

#define ENUM_ENTRY (   n)    n,

Definition at line 496 of file X86DisassemblerDecoderCommon.h.

Definition at line 77 of file X86DisassemblerDecoderCommon.h.

#define INSTRUCTIONS_STR   "x86DisassemblerInstrSpecifiers"

Definition at line 35 of file X86DisassemblerDecoderCommon.h.

#define INSTRUCTIONS_SYM   x86DisassemblerInstrSpecifiers

Definition at line 25 of file X86DisassemblerDecoderCommon.h.

Referenced by specifierForUID().

#define MODIFIER_TYPES   ENUM_ENTRY(MODIFIER_NONE)

Definition at line 493 of file X86DisassemblerDecoderCommon.h.

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

Definition at line 314 of file X86DisassemblerDecoderCommon.h.

#define ONEBYTE_STR   "x86DisassemblerOneByteOpcodes"

Definition at line 37 of file X86DisassemblerDecoderCommon.h.

#define ONEBYTE_SYM   x86DisassemblerOneByteOpcodes

Definition at line 27 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

#define THREEBYTE38_STR   "x86DisassemblerThreeByte38Opcodes"

Definition at line 39 of file X86DisassemblerDecoderCommon.h.

#define THREEBYTE38_SYM   x86DisassemblerThreeByte38Opcodes

Definition at line 29 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

#define THREEBYTE3A_STR   "x86DisassemblerThreeByte3AOpcodes"

Definition at line 40 of file X86DisassemblerDecoderCommon.h.

#define THREEBYTE3A_SYM   x86DisassemblerThreeByte3AOpcodes

Definition at line 30 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

#define TWOBYTE_STR   "x86DisassemblerTwoByteOpcodes"

Definition at line 38 of file X86DisassemblerDecoderCommon.h.

#define TWOBYTE_SYM   x86DisassemblerTwoByteOpcodes

Definition at line 28 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

#define TYPES

Definition at line 385 of file X86DisassemblerDecoderCommon.h.

#define XOP8_MAP_STR   "x86DisassemblerXOP8Opcodes"

Definition at line 41 of file X86DisassemblerDecoderCommon.h.

#define XOP8_MAP_SYM   x86DisassemblerXOP8Opcodes

Definition at line 31 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

#define XOP9_MAP_STR   "x86DisassemblerXOP9Opcodes"

Definition at line 42 of file X86DisassemblerDecoderCommon.h.

#define XOP9_MAP_SYM   x86DisassemblerXOP9Opcodes

Definition at line 32 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().

#define XOPA_MAP_STR   "x86DisassemblerXOPAOpcodes"

Definition at line 43 of file X86DisassemblerDecoderCommon.h.

#define XOPA_MAP_SYM   x86DisassemblerXOPAOpcodes

Definition at line 33 of file X86DisassemblerDecoderCommon.h.

Referenced by decode(), and modRMRequired().