LLVM 20.0.0git
Classes | Namespaces | Macros | Typedefs | Enumerations | Variables
X86DisassemblerDecoderCommon.h File Reference
#include "llvm/Support/DataTypes.h"

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
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  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 MAP4_SYM   x86DisassemblerMap4Opcodes
 
#define MAP5_SYM   x86DisassemblerMap5Opcodes
 
#define MAP6_SYM   x86DisassemblerMap6Opcodes
 
#define MAP7_SYM   x86DisassemblerMap7Opcodes
 
#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 MAP4_STR   "x86DisassemblerMap4Opcodes"
 
#define MAP5_STR   "x86DisassemblerMap5Opcodes"
 
#define MAP6_STR   "x86DisassemblerMap6Opcodes"
 
#define MAP7_STR   "x86DisassemblerMap7Opcodes"
 
#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_REX2 = 0x1 << 13 , llvm::X86Disassembler::ATTR_EVEXNF = 0x1 << 14 ,
  llvm::X86Disassembler::ATTR_EVEXU = 0x1 << 15 , llvm::X86Disassembler::ATTR_max = 0x1 << 16
}
 
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 ,
  llvm::X86Disassembler::MAP4 = 8 , llvm::X86Disassembler::MAP5 = 9 , llvm::X86Disassembler::MAP6 = 10 , llvm::X86Disassembler::MAP7 = 11
}
 
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 423 of file X86DisassemblerDecoderCommon.h.

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

◆ CONTEXTS_STR

#define CONTEXTS_STR   "x86DisassemblerContexts"

Definition at line 40 of file X86DisassemblerDecoderCommon.h.

◆ CONTEXTS_SYM

#define CONTEXTS_SYM   x86DisassemblerContexts

Definition at line 25 of file X86DisassemblerDecoderCommon.h.

◆ ENCODINGS

#define ENCODINGS

Definition at line 442 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [1/4]

#define ENUM_ENTRY (   n)    n,

Definition at line 526 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [2/4]

#define ENUM_ENTRY (   n,
 
)    n,

Definition at line 526 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [3/4]

#define ENUM_ENTRY (   n,
 
)    n,

Definition at line 526 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [4/4]

#define ENUM_ENTRY (   n,
  r,
 
)    n,

Definition at line 526 of file X86DisassemblerDecoderCommon.h.

◆ INSTRUCTION_CONTEXTS

#define INSTRUCTION_CONTEXTS

Definition at line 83 of file X86DisassemblerDecoderCommon.h.

◆ INSTRUCTIONS_STR

#define INSTRUCTIONS_STR   "x86DisassemblerInstrSpecifiers"

Definition at line 39 of file X86DisassemblerDecoderCommon.h.

◆ INSTRUCTIONS_SYM

#define INSTRUCTIONS_SYM   x86DisassemblerInstrSpecifiers

Definition at line 24 of file X86DisassemblerDecoderCommon.h.

◆ MAP4_STR

#define MAP4_STR   "x86DisassemblerMap4Opcodes"

Definition at line 49 of file X86DisassemblerDecoderCommon.h.

◆ MAP4_SYM

#define MAP4_SYM   x86DisassemblerMap4Opcodes

Definition at line 34 of file X86DisassemblerDecoderCommon.h.

◆ MAP5_STR

#define MAP5_STR   "x86DisassemblerMap5Opcodes"

Definition at line 50 of file X86DisassemblerDecoderCommon.h.

◆ MAP5_SYM

#define MAP5_SYM   x86DisassemblerMap5Opcodes

Definition at line 35 of file X86DisassemblerDecoderCommon.h.

◆ MAP6_STR

#define MAP6_STR   "x86DisassemblerMap6Opcodes"

Definition at line 51 of file X86DisassemblerDecoderCommon.h.

◆ MAP6_SYM

#define MAP6_SYM   x86DisassemblerMap6Opcodes

Definition at line 36 of file X86DisassemblerDecoderCommon.h.

◆ MAP7_STR

#define MAP7_STR   "x86DisassemblerMap7Opcodes"

Definition at line 52 of file X86DisassemblerDecoderCommon.h.

◆ MAP7_SYM

#define MAP7_SYM   x86DisassemblerMap7Opcodes

Definition at line 37 of file X86DisassemblerDecoderCommon.h.

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

◆ ONEBYTE_STR

#define ONEBYTE_STR   "x86DisassemblerOneByteOpcodes"

Definition at line 41 of file X86DisassemblerDecoderCommon.h.

◆ ONEBYTE_SYM

#define ONEBYTE_SYM   x86DisassemblerOneByteOpcodes

Definition at line 26 of file X86DisassemblerDecoderCommon.h.

◆ THREEBYTE38_STR

#define THREEBYTE38_STR   "x86DisassemblerThreeByte38Opcodes"

Definition at line 43 of file X86DisassemblerDecoderCommon.h.

◆ THREEBYTE38_SYM

#define THREEBYTE38_SYM   x86DisassemblerThreeByte38Opcodes

Definition at line 28 of file X86DisassemblerDecoderCommon.h.

◆ THREEBYTE3A_STR

#define THREEBYTE3A_STR   "x86DisassemblerThreeByte3AOpcodes"

Definition at line 44 of file X86DisassemblerDecoderCommon.h.

◆ THREEBYTE3A_SYM

#define THREEBYTE3A_SYM   x86DisassemblerThreeByte3AOpcodes

Definition at line 29 of file X86DisassemblerDecoderCommon.h.

◆ THREEDNOW_MAP_STR

#define THREEDNOW_MAP_STR   "x86Disassembler3DNowOpcodes"

Definition at line 48 of file X86DisassemblerDecoderCommon.h.

◆ THREEDNOW_MAP_SYM

#define THREEDNOW_MAP_SYM   x86Disassembler3DNowOpcodes

Definition at line 33 of file X86DisassemblerDecoderCommon.h.

◆ TWOBYTE_STR

#define TWOBYTE_STR   "x86DisassemblerTwoByteOpcodes"

Definition at line 42 of file X86DisassemblerDecoderCommon.h.

◆ TWOBYTE_SYM

#define TWOBYTE_SYM   x86DisassemblerTwoByteOpcodes

Definition at line 27 of file X86DisassemblerDecoderCommon.h.

◆ TYPES

#define TYPES

Definition at line 489 of file X86DisassemblerDecoderCommon.h.

◆ XOP8_MAP_STR

#define XOP8_MAP_STR   "x86DisassemblerXOP8Opcodes"

Definition at line 45 of file X86DisassemblerDecoderCommon.h.

◆ XOP8_MAP_SYM

#define XOP8_MAP_SYM   x86DisassemblerXOP8Opcodes

Definition at line 30 of file X86DisassemblerDecoderCommon.h.

◆ XOP9_MAP_STR

#define XOP9_MAP_STR   "x86DisassemblerXOP9Opcodes"

Definition at line 46 of file X86DisassemblerDecoderCommon.h.

◆ XOP9_MAP_SYM

#define XOP9_MAP_SYM   x86DisassemblerXOP9Opcodes

Definition at line 31 of file X86DisassemblerDecoderCommon.h.

◆ XOPA_MAP_STR

#define XOPA_MAP_STR   "x86DisassemblerXOPAOpcodes"

Definition at line 47 of file X86DisassemblerDecoderCommon.h.

◆ XOPA_MAP_SYM

#define XOPA_MAP_SYM   x86DisassemblerXOPAOpcodes

Definition at line 32 of file X86DisassemblerDecoderCommon.h.