Pin
Macros | Enumerations | Functions | Variables
ins_inits_api_xed_ia32.cpp File Reference
#include "level_base.H"
#include "level_core_with_ia32_ins.H"

Macros

#define PREDICATE_TABLE_ENTRY(op)   { XED_ICLASS_CMOV##op, XED_ICLASS_SET##op }
 

Enumerations

enum  XED_OPERAND_NUMBER {
  XED_OPERAND_NUMBER_0 = 0,
  XED_OPERAND_NUMBER_1 = 1,
  XED_OPERAND_NUMBER_2 = 2,
  XED_OPERAND_NUMBER_3 = 3
}
 

Functions

VOID LEVEL_CORE::INS_InitMovsxd (INS ins, REG src, REG dst)
 

Variables

LOCALCONST UINT LEVEL_CORE::AUTO_DISP_BYTES = 0
 
LOCALCONST INT32 LEVEL_CORE::DEFAULT_EA_WIDTH = sizeof(VOID*) * 8
 
LOCALCONST xed_state_t LEVEL_CORE::DSTATE
 
LOCALCONST UINT LEVEL_CORE::MAX_DUMMY_REGS = 3
 
LOCALCONST UINT LEVEL_CORE::MAX_DUMMY_REG_WIDTHS = 4
 
LOCALCONST REGWIDTH LEVEL_CORE::MAX_DUMMY_REGWIDTH = REGWIDTH_64
 
LOCALVAR const xed_reg_enum_t LEVEL_CORE::dummy_regs_native_table [MAX_DUMMY_REGS]
 
LOCALVAR const xed_reg_enum_t LEVEL_CORE::dummy_regs_width_table [MAX_DUMMY_REGS][MAX_DUMMY_REG_WIDTHS]
 
struct {
   xed_iclass_enum_t   cmovOp
 
   xed_iclass_enum_t   setOp
 
LEVEL_CORE::predicateToOp []
 

Detailed Description

This file contains the basic INS_Init* functions used thruout Pin to generate INSs, and the functions that use them. The basic INS_Init* functions are LOCALFUNS, so they do not expose the XED types thruout Pin. The GLOBALFUNs wrap them.

Function Documentation

◆ INS_InitMovsxd()

VOID LEVEL_CORE::INS_InitMovsxd ( INS  ins,
REG  src,
REG  dst 
)

x

Variable Documentation

◆ DSTATE

LOCALCONST xed_state_t LEVEL_CORE::DSTATE
Initial value:
=
{XED_MACHINE_MODE_LONG_64, XED_ADDRESS_WIDTH_64b}

◆ dummy_regs_native_table

LOCALVAR const xed_reg_enum_t LEVEL_CORE::dummy_regs_native_table[MAX_DUMMY_REGS]
Initial value:
=
{
XED_REG_RDX, XED_REG_RBX, XED_REG_RCX
}

◆ dummy_regs_width_table

LOCALVAR const xed_reg_enum_t LEVEL_CORE::dummy_regs_width_table[MAX_DUMMY_REGS][MAX_DUMMY_REG_WIDTHS]
Initial value:
=
{
{ XED_REG_DL, XED_REG_DX, XED_REG_EDX, XED_REG_RDX},
{ XED_REG_CL, XED_REG_CX, XED_REG_ECX, XED_REG_RCX},
{ XED_REG_BL, XED_REG_BX, XED_REG_EBX, XED_REG_RBX}
}

◆ predicateToOp

LOCALVAR { ... } LEVEL_CORE::predicateToOp[]
Initial value:
= {
PREDICATE_TABLE_ENTRY (B),
PREDICATE_TABLE_ENTRY (BE),
PREDICATE_TABLE_ENTRY (L),
PREDICATE_TABLE_ENTRY (LE),
PREDICATE_TABLE_ENTRY (NB),
PREDICATE_TABLE_ENTRY (NBE),
PREDICATE_TABLE_ENTRY (NL),
PREDICATE_TABLE_ENTRY (NLE),
PREDICATE_TABLE_ENTRY (NO),
PREDICATE_TABLE_ENTRY (NP),
PREDICATE_TABLE_ENTRY (NS),
PREDICATE_TABLE_ENTRY (NZ),
PREDICATE_TABLE_ENTRY (O),
PREDICATE_TABLE_ENTRY (P),
PREDICATE_TABLE_ENTRY (S),
PREDICATE_TABLE_ENTRY (Z)
}