IDA C++ SDK 9.2
Loading...
Searching...
No Matches
intel.hpp File Reference

Go to the source code of this file.

Classes

struct  fbase_reg_t
struct  pushreg_t
struct  pushinfo_t
struct  mmtype_t

Namespaces

namespace  pc_module_t

Typedefs

typedef short regnum_t
typedef const regval_t &idaapi getreg_t(const char *name, const regval_t *regvalues)

Enumerations

enum  RegNo {
  R_none = -1 , R_ax = 0 , R_cx , R_dx ,
  R_bx , R_sp , R_bp , R_si ,
  R_di , R_r8 , R_r9 , R_r10 ,
  R_r11 , R_r12 , R_r13 , R_r14 ,
  R_r15 , R_al , R_cl , R_dl ,
  R_bl , R_ah , R_ch , R_dh ,
  R_bh , R_spl , R_bpl , R_sil ,
  R_dil , R_ip , R_es , R_cs ,
  R_ss , R_ds , R_fs , R_gs ,
  R_cf , R_zf , R_sf , R_of ,
  R_pf , R_af , R_tf , R_if ,
  R_df , R_efl , R_st0 , R_st1 ,
  R_st2 , R_st3 , R_st4 , R_st5 ,
  R_st6 , R_st7 , R_fpctrl , R_fpstat ,
  R_fptags , R_mm0 , R_mm1 , R_mm2 ,
  R_mm3 , R_mm4 , R_mm5 , R_mm6 ,
  R_mm7 , R_xmm0 , R_xmm1 , R_xmm2 ,
  R_xmm3 , R_xmm4 , R_xmm5 , R_xmm6 ,
  R_xmm7 , R_xmm8 , R_xmm9 , R_xmm10 ,
  R_xmm11 , R_xmm12 , R_xmm13 , R_xmm14 ,
  R_xmm15 , R_mxcsr , R_ymm0 , R_ymm1 ,
  R_ymm2 , R_ymm3 , R_ymm4 , R_ymm5 ,
  R_ymm6 , R_ymm7 , R_ymm8 , R_ymm9 ,
  R_ymm10 , R_ymm11 , R_ymm12 , R_ymm13 ,
  R_ymm14 , R_ymm15 , R_bnd0 , R_bnd1 ,
  R_bnd2 , R_bnd3 , R_xmm16 , R_xmm17 ,
  R_xmm18 , R_xmm19 , R_xmm20 , R_xmm21 ,
  R_xmm22 , R_xmm23 , R_xmm24 , R_xmm25 ,
  R_xmm26 , R_xmm27 , R_xmm28 , R_xmm29 ,
  R_xmm30 , R_xmm31 , R_ymm16 , R_ymm17 ,
  R_ymm18 , R_ymm19 , R_ymm20 , R_ymm21 ,
  R_ymm22 , R_ymm23 , R_ymm24 , R_ymm25 ,
  R_ymm26 , R_ymm27 , R_ymm28 , R_ymm29 ,
  R_ymm30 , R_ymm31 , R_zmm0 , R_zmm1 ,
  R_zmm2 , R_zmm3 , R_zmm4 , R_zmm5 ,
  R_zmm6 , R_zmm7 , R_zmm8 , R_zmm9 ,
  R_zmm10 , R_zmm11 , R_zmm12 , R_zmm13 ,
  R_zmm14 , R_zmm15 , R_zmm16 , R_zmm17 ,
  R_zmm18 , R_zmm19 , R_zmm20 , R_zmm21 ,
  R_zmm22 , R_zmm23 , R_zmm24 , R_zmm25 ,
  R_zmm26 , R_zmm27 , R_zmm28 , R_zmm29 ,
  R_zmm30 , R_zmm31 , R_k0 , R_k1 ,
  R_k2 , R_k3 , R_k4 , R_k5 ,
  R_k6 , R_k7 , R_last
}
enum  spec_func_type_t {
  SF_NONE , SF_EH_PROLOG , SF_SEH_PROLOG , SF_SEH_EPILOG ,
  SF_ALLOCA , SF_CHK , SF_SYSINIT , SF_EH_EPILOG ,
  SF_LSTRCATN
}
enum  pc_module_t::event_codes_t {
  pc_module_t::ev_set_difbase = processor_t::ev_loader , pc_module_t::ev_restore_pushinfo , pc_module_t::ev_save_pushinfo , pc_module_t::ev_prolog_analyzed ,
  pc_module_t::ev_verify_epilog , pc_module_t::obsolete_ev_find_reg_value , pc_module_t::ev_dbgtools_path , pc_module_t::ev_is_get_pc_thunk ,
  pc_module_t::ev_vxd_loaded , pc_module_t::ev_get_borland_template_node , pc_module_t::ev_clear_borland_template_node , pc_module_t::ev_borland_template ,
  pc_module_t::ev_get_segval , pc_module_t::ev_get_idpflags , pc_module_t::ev_get_ret_target , pc_module_t::ev_set_ret_target ,
  pc_module_t::ev_del_ret_target
}

Functions

 CASSERT (PROC_MAXOP<=UA_MAXOP)
 CASSERT (R_last==173)
bool is_segreg (int r)
bool is_fpureg (int r)
bool is_mmxreg (int r)
bool is_xmmreg (int r)
bool is_ymmreg (int r)
int cvt_to_wholereg (int _reg, bool allow_high_byte_regs)
int calc_dbg_reg_index (const char *name)
bool insn_jcc (const insn_t &insn)
bool insn_default_opsize_64 (const insn_t &insn)
bool mode16 (const insn_t &insn)
bool mode32 (const insn_t &insn)
bool mode64 (const insn_t &insn)
bool natad (const insn_t &insn)
bool natop (const insn_t &insn)
bool vexpr (const insn_t &insn)
bool evexpr (const insn_t &insn)
bool xopexpr (const insn_t &insn)
bool ad16 (const insn_t &insn)
bool ad32 (const insn_t &insn)
bool ad64 (const insn_t &insn)
bool op16 (const insn_t &insn)
bool op32 (const insn_t &insn)
bool op64 (const insn_t &insn)
bool op256 (const insn_t &insn)
bool op512 (const insn_t &insn)
bool is_vsib (const insn_t &insn)
regnum_t vsib_index_fixreg (const insn_t &insn, regnum_t index)
int sib_base (const insn_t &insn, const op_t &x)
regnum_t sib_index (const insn_t &insn, const op_t &x)
int sib_scale (const op_t &x)
int x86_base (const insn_t &insn, const op_t &x)
int x86_base_reg (const insn_t &insn, const op_t &x)
int x86_index (const insn_t &insn, const op_t &x)
int x86_index_reg (const insn_t &insn, const op_t &x)
int x86_scale (const op_t &x)
int has_displ (const op_t &x)
bool has_tls_segpref (const insn_t &insn)
bool mem_as_displ (const insn_t &insn, const op_t &x)
bool is_stack_ref (const insn_t &insn, const op_t &x, int breg)
op_dtype_t address_dtype (const insn_t &insn)
op_dtype_t operand_dtype (const insn_t &insn)
bool is_io_insn (const insn_t &insn)
bool is_arith_lea (const insn_t &insn, const op_t &x)
bool is_push_ecx (uchar b)
bool is_push_eax (uchar b)
bool is_push_edx (uchar b)
bool is_push_ebx (uchar b)
bool is_volatile_reg (int r)
bool is_mingw_abi (void)
bool is_msabi ()
bool is_msabi (callcnv_t cc)
int pc_shadow_area_size (callcnv_t cc)
processor_t::event_t pc_module_t::idp_ev (event_codes_t ev)
void pc_module_t::set_difbase (int onoff)
bool pc_module_t::restore_pushinfo (pushinfo_t *pi, ea_t func_start)
bool pc_module_t::save_pushinfo (ea_t func_start, pushinfo_t *pi)
int pc_module_t::prolog_analyzed (ea_t first_past_prolog_insn, pushinfo_t *pi)
bool pc_module_t::verify_epilog (int *answer, pushinfo_t *pi, const insn_t &insn)
bool pc_module_t::dbgtools_path (char *path, size_t path_size)
int pc_module_t::is_get_pc_thunk (RegNo *p_reg, ea_t *p_end, const insn_t &insn)
int pc_module_t::vxd_loaded ()
bool pc_module_t::get_borland_template_node (netnode *node)
void pc_module_t::clear_borland_template_node (void)
bool pc_module_t::borland_template (ea_t ea, bool bp_mode, bool recursive)
ea_t pc_module_t::get_segval (const insn_t &insn, const op_t &x)
uint32 pc_module_t::get_idpflags ()
bool pc_module_t::get_ret_target (ea_t ea, ea_t *target)
void pc_module_t::set_ret_target (ea_t ea, ea_t target)
void pc_module_t::del_ret_target (ea_t ea)
bool should_af_push (void)
bool should_af_nop (void)
bool should_af_movoff (void)
bool should_af_movoff2 (void)
bool should_af_zeroins (void)
bool should_af_brtti (void)
bool should_af_urtti (void)
bool should_af_fexp (void)
bool should_af_difbase (void)
bool should_af_nopref (void)
bool should_af_vxd (void)
bool should_af_fpemu (void)
bool should_af_showrip (void)
bool should_af_seh (void)
bool should_af_int3stop (void)
bool should_af_aggrjmps (void)
bool should_af_use_any_ind_op (void)
bool get_ret_target (ea_t ea, ea_t *target)
void set_ret_target (ea_t ea, ea_t target)
void del_ret_target (ea_t ea)
bool isProtected (uint32 type)
bool isAMD (uint32 type)
bool isp4 (uint32 type)
bool isp3 (uint32 type)
bool is3dnow (uint32 type)
bool ismmx (uint32 type)
bool isp2 (uint32 type)
bool is686 (uint32 type)
bool is586 (uint32 type)
bool is486 (uint32 type)
bool is386 (uint32 type)
bool is286 (uint32 type)

Variables

const int EVEX_R = 0x01
const int EVEX_L = 0x02
const int EVEX_z = 0x04
const int EVEX_b = 0x08
const int EVEX_V = 0x10
const int REX_W = 8
const int REX_R = 4
const int REX_X = 2
const int REX_B = 1
const int VEX_L = 0x80
const int INDEX_NONE = 4
const char callee_tag = 'A'
const char fbase_tag = 'b'
const char frame_tag = 'f'
const char purge_tag = 'p'
const char ret_tag = 'r'
const char pushinfo_tag = 's'
const char is_ptr_tag = 'P'
const char finally_tag = 'F'
const char handler_tag = 'h'
const char vxd_tag1 = 'V'
const char vxd_tag2 = 'W'
const char maybe_switch_tag = 'j'

Typedef Documentation

◆ regnum_t

typedef short regnum_t

◆ getreg_t

typedef const regval_t &idaapi getreg_t(const char *name, const regval_t *regvalues)

Enumeration Type Documentation

◆ RegNo

enum RegNo
Enumerator
R_none 
R_ax 
R_cx 
R_dx 
R_bx 
R_sp 
R_bp 
R_si 
R_di 
R_r8 
R_r9 
R_r10 
R_r11 
R_r12 
R_r13 
R_r14 
R_r15 
R_al 
R_cl 
R_dl 
R_bl 
R_ah 
R_ch 
R_dh 
R_bh 
R_spl 
R_bpl 
R_sil 
R_dil 
R_ip 
R_es 
R_cs 
R_ss 
R_ds 
R_fs 
R_gs 
R_cf 
R_zf 
R_sf 
R_of 
R_pf 
R_af 
R_tf 
R_if 
R_df 
R_efl 
R_st0 
R_st1 
R_st2 
R_st3 
R_st4 
R_st5 
R_st6 
R_st7 
R_fpctrl 
R_fpstat 
R_fptags 
R_mm0 
R_mm1 
R_mm2 
R_mm3 
R_mm4 
R_mm5 
R_mm6 
R_mm7 
R_xmm0 
R_xmm1 
R_xmm2 
R_xmm3 
R_xmm4 
R_xmm5 
R_xmm6 
R_xmm7 
R_xmm8 
R_xmm9 
R_xmm10 
R_xmm11 
R_xmm12 
R_xmm13 
R_xmm14 
R_xmm15 
R_mxcsr 
R_ymm0 
R_ymm1 
R_ymm2 
R_ymm3 
R_ymm4 
R_ymm5 
R_ymm6 
R_ymm7 
R_ymm8 
R_ymm9 
R_ymm10 
R_ymm11 
R_ymm12 
R_ymm13 
R_ymm14 
R_ymm15 
R_bnd0 
R_bnd1 
R_bnd2 
R_bnd3 
R_xmm16 
R_xmm17 
R_xmm18 
R_xmm19 
R_xmm20 
R_xmm21 
R_xmm22 
R_xmm23 
R_xmm24 
R_xmm25 
R_xmm26 
R_xmm27 
R_xmm28 
R_xmm29 
R_xmm30 
R_xmm31 
R_ymm16 
R_ymm17 
R_ymm18 
R_ymm19 
R_ymm20 
R_ymm21 
R_ymm22 
R_ymm23 
R_ymm24 
R_ymm25 
R_ymm26 
R_ymm27 
R_ymm28 
R_ymm29 
R_ymm30 
R_ymm31 
R_zmm0 
R_zmm1 
R_zmm2 
R_zmm3 
R_zmm4 
R_zmm5 
R_zmm6 
R_zmm7 
R_zmm8 
R_zmm9 
R_zmm10 
R_zmm11 
R_zmm12 
R_zmm13 
R_zmm14 
R_zmm15 
R_zmm16 
R_zmm17 
R_zmm18 
R_zmm19 
R_zmm20 
R_zmm21 
R_zmm22 
R_zmm23 
R_zmm24 
R_zmm25 
R_zmm26 
R_zmm27 
R_zmm28 
R_zmm29 
R_zmm30 
R_zmm31 
R_k0 
R_k1 
R_k2 
R_k3 
R_k4 
R_k5 
R_k6 
R_k7 
R_last 

◆ spec_func_type_t

Enumerator
SF_NONE 
SF_EH_PROLOG 
SF_SEH_PROLOG 
SF_SEH_EPILOG 
SF_ALLOCA 
SF_CHK 
SF_SYSINIT 
SF_EH_EPILOG 
SF_LSTRCATN 

Function Documentation

◆ CASSERT() [1/2]

CASSERT ( PROC_MAXOP<= UA_MAXOP)

◆ CASSERT() [2/2]

CASSERT ( R_last = =173)

◆ is_segreg()

bool is_segreg ( int r)
inline

◆ is_fpureg()

bool is_fpureg ( int r)
inline

◆ is_mmxreg()

bool is_mmxreg ( int r)
inline

◆ is_xmmreg()

bool is_xmmreg ( int r)
inline

◆ is_ymmreg()

bool is_ymmreg ( int r)
inline

◆ cvt_to_wholereg()

int cvt_to_wholereg ( int _reg,
bool allow_high_byte_regs )

◆ calc_dbg_reg_index()

int calc_dbg_reg_index ( const char * name)

◆ insn_jcc()

bool insn_jcc ( const insn_t & insn)
inline

◆ insn_default_opsize_64()

bool insn_default_opsize_64 ( const insn_t & insn)
inline

◆ mode16()

bool mode16 ( const insn_t & insn)
inline

◆ mode32()

bool mode32 ( const insn_t & insn)
inline

◆ mode64()

bool mode64 ( const insn_t & insn)
inline

◆ natad()

bool natad ( const insn_t & insn)
inline

◆ natop()

bool natop ( const insn_t & insn)
inline

◆ vexpr()

bool vexpr ( const insn_t & insn)
inline

◆ evexpr()

bool evexpr ( const insn_t & insn)
inline

◆ xopexpr()

bool xopexpr ( const insn_t & insn)
inline

◆ ad16()

bool ad16 ( const insn_t & insn)
inline

◆ ad32()

bool ad32 ( const insn_t & insn)
inline

◆ ad64()

bool ad64 ( const insn_t & insn)
inline

◆ op16()

bool op16 ( const insn_t & insn)
inline

◆ op32()

bool op32 ( const insn_t & insn)
inline

◆ op64()

bool op64 ( const insn_t & insn)
inline

◆ op256()

bool op256 ( const insn_t & insn)
inline

◆ op512()

bool op512 ( const insn_t & insn)
inline

◆ is_vsib()

bool is_vsib ( const insn_t & insn)
inline

◆ vsib_index_fixreg()

regnum_t vsib_index_fixreg ( const insn_t & insn,
regnum_t index )
inline

◆ sib_base()

int sib_base ( const insn_t & insn,
const op_t & x )
inline

◆ sib_index()

regnum_t sib_index ( const insn_t & insn,
const op_t & x )
inline

◆ sib_scale()

int sib_scale ( const op_t & x)
inline

◆ x86_base()

int x86_base ( const insn_t & insn,
const op_t & x )
inline

◆ x86_base_reg()

int x86_base_reg ( const insn_t & insn,
const op_t & x )
inline

◆ x86_index()

int x86_index ( const insn_t & insn,
const op_t & x )
inline

◆ x86_index_reg()

int x86_index_reg ( const insn_t & insn,
const op_t & x )
inline

◆ x86_scale()

int x86_scale ( const op_t & x)
inline

◆ has_displ()

int has_displ ( const op_t & x)
inline

◆ has_tls_segpref()

bool has_tls_segpref ( const insn_t & insn)
inline

◆ mem_as_displ()

bool mem_as_displ ( const insn_t & insn,
const op_t & x )
inline

◆ is_stack_ref()

bool is_stack_ref ( const insn_t & insn,
const op_t & x,
int breg )

◆ address_dtype()

op_dtype_t address_dtype ( const insn_t & insn)
inline

◆ operand_dtype()

op_dtype_t operand_dtype ( const insn_t & insn)
inline

◆ is_io_insn()

bool is_io_insn ( const insn_t & insn)
inline

◆ is_arith_lea()

bool is_arith_lea ( const insn_t & insn,
const op_t & x )
inline

◆ is_push_ecx()

bool is_push_ecx ( uchar b)
inline

◆ is_push_eax()

bool is_push_eax ( uchar b)
inline

◆ is_push_edx()

bool is_push_edx ( uchar b)
inline

◆ is_push_ebx()

bool is_push_ebx ( uchar b)
inline

◆ is_volatile_reg()

bool is_volatile_reg ( int r)
inline

◆ is_mingw_abi()

bool is_mingw_abi ( void )
inline

◆ is_msabi() [1/2]

bool is_msabi ( )
inline

◆ is_msabi() [2/2]

bool is_msabi ( callcnv_t cc)
inline

◆ pc_shadow_area_size()

int pc_shadow_area_size ( callcnv_t cc)
inline

◆ should_af_push()

bool should_af_push ( void )
inline

◆ should_af_nop()

bool should_af_nop ( void )
inline

◆ should_af_movoff()

bool should_af_movoff ( void )
inline

◆ should_af_movoff2()

bool should_af_movoff2 ( void )
inline

◆ should_af_zeroins()

bool should_af_zeroins ( void )
inline

◆ should_af_brtti()

bool should_af_brtti ( void )
inline

◆ should_af_urtti()

bool should_af_urtti ( void )
inline

◆ should_af_fexp()

bool should_af_fexp ( void )
inline

◆ should_af_difbase()

bool should_af_difbase ( void )
inline

◆ should_af_nopref()

bool should_af_nopref ( void )
inline

◆ should_af_vxd()

bool should_af_vxd ( void )
inline

◆ should_af_fpemu()

bool should_af_fpemu ( void )
inline

◆ should_af_showrip()

bool should_af_showrip ( void )
inline

◆ should_af_seh()

bool should_af_seh ( void )
inline

◆ should_af_int3stop()

bool should_af_int3stop ( void )
inline

◆ should_af_aggrjmps()

bool should_af_aggrjmps ( void )
inline

◆ should_af_use_any_ind_op()

bool should_af_use_any_ind_op ( void )
inline

◆ get_ret_target()

bool get_ret_target ( ea_t ea,
ea_t * target )
inline

◆ set_ret_target()

void set_ret_target ( ea_t ea,
ea_t target )
inline

◆ del_ret_target()

void del_ret_target ( ea_t ea)
inline

◆ isProtected()

bool isProtected ( uint32 type)
inline

◆ isAMD()

bool isAMD ( uint32 type)
inline

◆ isp4()

bool isp4 ( uint32 type)
inline

◆ isp3()

bool isp3 ( uint32 type)
inline

◆ is3dnow()

bool is3dnow ( uint32 type)
inline

◆ ismmx()

bool ismmx ( uint32 type)
inline

◆ isp2()

bool isp2 ( uint32 type)
inline

◆ is686()

bool is686 ( uint32 type)
inline

◆ is586()

bool is586 ( uint32 type)
inline

◆ is486()

bool is486 ( uint32 type)
inline

◆ is386()

bool is386 ( uint32 type)
inline

◆ is286()

bool is286 ( uint32 type)
inline

Variable Documentation

◆ EVEX_R

const int EVEX_R = 0x01

◆ EVEX_L

const int EVEX_L = 0x02

◆ EVEX_z

const int EVEX_z = 0x04

◆ EVEX_b

const int EVEX_b = 0x08

◆ EVEX_V

const int EVEX_V = 0x10

◆ REX_W

const int REX_W = 8

◆ REX_R

const int REX_R = 4

◆ REX_X

const int REX_X = 2

◆ REX_B

const int REX_B = 1

◆ VEX_L

const int VEX_L = 0x80

◆ INDEX_NONE

const int INDEX_NONE = 4

◆ callee_tag

const char callee_tag = 'A'

◆ fbase_tag

const char fbase_tag = 'b'

◆ frame_tag

const char frame_tag = 'f'

◆ purge_tag

const char purge_tag = 'p'

◆ ret_tag

const char ret_tag = 'r'

◆ pushinfo_tag

const char pushinfo_tag = 's'

◆ is_ptr_tag

const char is_ptr_tag = 'P'

◆ finally_tag

const char finally_tag = 'F'

◆ handler_tag

const char handler_tag = 'h'

◆ vxd_tag1

const char vxd_tag1 = 'V'

◆ vxd_tag2

const char vxd_tag2 = 'W'

◆ maybe_switch_tag

const char maybe_switch_tag = 'j'