Rizin
unix-like reverse engineering framework and cli tools
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;