Rizin
unix-like reverse engineering framework and cli tools
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Friends Macros Modules Pages
X86DisassemblerDecoderCommon.h File Reference

Go to the source code of this file.

Classes

struct  OperandSpecifier
 

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 T3DNOW_MAP_SYM   x86DisassemblerT3DNOWOpcodes
 
#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 X86_MAX_OPERANDS   6
 

Typedefs

typedef uint16_t InstrUID
 
typedef struct OperandSpecifier OperandSpecifier
 

Enumerations

enum  attributeBits { ATTR_max }
 
enum  InstructionContext { IC_max }
 
enum  OpcodeType {
  ONEBYTE = 0 , TWOBYTE = 1 , THREEBYTE_38 = 2 , THREEBYTE_3A = 3 ,
  XOP8_MAP = 4 , XOP9_MAP = 5 , XOPA_MAP = 6 , T3DNOW_MAP = 7
}
 
enum  ModRMDecisionType { MODRM_max }
 
enum  OperandEncoding { ENCODING_max }
 
enum  OperandType { TYPE_max }
 
enum  DisassemblerMode { MODE_16BIT , MODE_32BIT , MODE_64BIT }
 

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

◆ CONTEXTS_SYM

#define CONTEXTS_SYM   x86DisassemblerContexts

Definition at line 29 of file X86DisassemblerDecoderCommon.h.

◆ ENCODINGS

#define ENCODINGS

Definition at line 354 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [1/5]

#define ENUM_ENTRY (   n)    n,

Definition at line 488 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [2/5]

#define ENUM_ENTRY (   n,
  d 
)    n,

Definition at line 488 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [3/5]

#define ENUM_ENTRY (   n,
  d 
)    n,

Definition at line 488 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [4/5]

#define ENUM_ENTRY (   n,
  r,
  d 
)    n,

Definition at line 488 of file X86DisassemblerDecoderCommon.h.

◆ ENUM_ENTRY [5/5]

#define ENUM_ENTRY (   n,
  v 
)    n = v,

Definition at line 488 of file X86DisassemblerDecoderCommon.h.

◆ INSTRUCTION_CONTEXTS

#define INSTRUCTION_CONTEXTS

Definition at line 76 of file X86DisassemblerDecoderCommon.h.

◆ INSTRUCTIONS_SYM

#define INSTRUCTIONS_SYM   x86DisassemblerInstrSpecifiers

Definition at line 28 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)

Definition at line 329 of file X86DisassemblerDecoderCommon.h.

◆ ONEBYTE_SYM

#define ONEBYTE_SYM   x86DisassemblerOneByteOpcodes

Definition at line 30 of file X86DisassemblerDecoderCommon.h.

◆ T3DNOW_MAP_SYM

#define T3DNOW_MAP_SYM   x86DisassemblerT3DNOWOpcodes

Definition at line 37 of file X86DisassemblerDecoderCommon.h.

◆ THREEBYTE38_SYM

#define THREEBYTE38_SYM   x86DisassemblerThreeByte38Opcodes

Definition at line 32 of file X86DisassemblerDecoderCommon.h.

◆ THREEBYTE3A_SYM

#define THREEBYTE3A_SYM   x86DisassemblerThreeByte3AOpcodes

Definition at line 33 of file X86DisassemblerDecoderCommon.h.

◆ TWOBYTE_SYM

#define TWOBYTE_SYM   x86DisassemblerTwoByteOpcodes

Definition at line 31 of file X86DisassemblerDecoderCommon.h.

◆ TYPES

#define TYPES

Definition at line 403 of file X86DisassemblerDecoderCommon.h.

◆ X86_MAX_OPERANDS

#define X86_MAX_OPERANDS   6

Definition at line 504 of file X86DisassemblerDecoderCommon.h.

◆ XOP8_MAP_SYM

#define XOP8_MAP_SYM   x86DisassemblerXOP8Opcodes

Definition at line 34 of file X86DisassemblerDecoderCommon.h.

◆ XOP9_MAP_SYM

#define XOP9_MAP_SYM   x86DisassemblerXOP9Opcodes

Definition at line 35 of file X86DisassemblerDecoderCommon.h.

◆ XOPA_MAP_SYM

#define XOPA_MAP_SYM   x86DisassemblerXOPAOpcodes

Definition at line 36 of file X86DisassemblerDecoderCommon.h.

Typedef Documentation

◆ InstrUID

typedef uint16_t InstrUID

Definition at line 308 of file X86DisassemblerDecoderCommon.h.

◆ OperandSpecifier

Enumeration Type Documentation

◆ attributeBits

Enumerator
ATTR_max 

Definition at line 63 of file X86DisassemblerDecoderCommon.h.

63  {
65  ATTR_max
66 };
#define ATTRIBUTE_BITS

◆ DisassemblerMode

Enumerator
MODE_16BIT 
MODE_32BIT 
MODE_64BIT 

Definition at line 511 of file X86DisassemblerDecoderCommon.h.

◆ InstructionContext

Enumerator
IC_max 

Definition at line 277 of file X86DisassemblerDecoderCommon.h.

◆ ModRMDecisionType

Enumerator
MODRM_max 

Definition at line 337 of file X86DisassemblerDecoderCommon.h.

337  {
338  MODRMTYPES
339  MODRM_max
#define MODRMTYPES

◆ OpcodeType

enum OpcodeType
Enumerator
ONEBYTE 
TWOBYTE 
THREEBYTE_38 
THREEBYTE_3A 
XOP8_MAP 
XOP9_MAP 
XOPA_MAP 
T3DNOW_MAP 

Definition at line 287 of file X86DisassemblerDecoderCommon.h.

287  {
288  ONEBYTE = 0,
289  TWOBYTE = 1,
290  THREEBYTE_38 = 2,
291  THREEBYTE_3A = 3,
292  XOP8_MAP = 4,
293  XOP9_MAP = 5,
294  XOPA_MAP = 6,
295  T3DNOW_MAP = 7
296 } OpcodeType;

◆ OperandEncoding

Enumerator
ENCODING_max 

Definition at line 393 of file X86DisassemblerDecoderCommon.h.

393  {
394  ENCODINGS
#define ENCODINGS

◆ OperandType

Enumerator
TYPE_max 

Definition at line 489 of file X86DisassemblerDecoderCommon.h.

489  {
490  TYPES
491  TYPE_max
492 } OperandType;