dr_ir_macros.h File Reference

Instruction creation convenience macros. More...

#include <math.h>

Defines

#define LOCK(instr_ptr)   instr_set_prefix_flag((instr_ptr), PREFIX_LOCK)
#define INSTR_XL8(instr_ptr, app_addr)   instr_set_translation((instr_ptr), (app_addr))
#define OPND_CREATE_MEM64(base_reg, disp)   opnd_create_base_disp(base_reg, REG_NULL, 0, disp, OPSZ_8)
#define OPND_CREATE_MEM32(base_reg, disp)   opnd_create_base_disp(base_reg, REG_NULL, 0, disp, OPSZ_4)
#define OPND_CREATE_MEM16(base_reg, disp)   opnd_create_base_disp(base_reg, REG_NULL, 0, disp, OPSZ_2)
#define OPND_CREATE_MEM8(base_reg, disp)   opnd_create_base_disp(base_reg, REG_NULL, 0, disp, OPSZ_1)
#define OPND_CREATE_MEMPTR   OPND_CREATE_MEM64
#define OPND_CREATE_ABSMEM(addr, size)   opnd_create_rel_addr(addr, size)
#define OPND_CREATE_INT64(val)   opnd_create_immed_int((ptr_int_t)(val), OPSZ_8)
#define OPND_CREATE_INTPTR   OPND_CREATE_INT64
#define OPND_CREATE_INT32(val)   opnd_create_immed_int((ptr_int_t)(val), OPSZ_4)
#define OPND_CREATE_INT16(val)   opnd_create_immed_int((ptr_int_t)(val), OPSZ_2)
#define OPND_CREATE_INT8(val)   opnd_create_immed_int((ptr_int_t)(val), OPSZ_1)
#define OPND_CREATE_INT_32OR8(val)
#define OPND_CREATE_INT_16OR8(val)
#define OPND_CREATE_MEM_lea(base, index, scale, disp)   opnd_create_base_disp(base, index, scale, disp, OPSZ_lea)
#define OPND_CREATE_MEM_invlpg(base, index, scale, disp)   opnd_create_base_disp(base, index, scale, disp, OPSZ_invlpg)
#define OPND_CREATE_MEM_clflush(base, index, scale, disp)   opnd_create_base_disp(base, index, scale, disp, OPSZ_clflush)
#define OPND_CREATE_MEM_prefetch(base, index, scale, disp)   opnd_create_base_disp(base, index, scale, disp, OPSZ_prefetch)
#define OPND_CREATE_MEM_lgdt(base, index, scale, disp)   opnd_create_base_disp(base, index, scale, disp, OPSZ_lgdt)
#define OPND_CREATE_MEM_sgdt(base, index, scale, disp)   opnd_create_base_disp(base, index, scale, disp, OPSZ_sgdt)
#define OPND_CREATE_MEM_lidt(base, index, scale, disp)   opnd_create_base_disp(base, index, scale, disp, OPSZ_lidt)
#define OPND_CREATE_MEM_sidt(base, index, scale, disp)   opnd_create_base_disp(base, index, scale, disp, OPSZ_sidt)
#define OPND_CREATE_MEM_bound(base, index, scale, disp)   opnd_create_base_disp(base, index, scale, disp, OPSZ_bound)
#define OPND_CREATE_MEM_fldenv(base, index, scale, disp)   opnd_create_base_disp(base, index, scale, disp, OPSZ_fldenv)
#define OPND_CREATE_MEM_fnstenv(base, index, scale, disp)   opnd_create_base_disp(base, index, scale, disp, OPSZ_fnstenv)
#define OPND_CREATE_MEM_fnsave(base, index, scale, disp)   opnd_create_base_disp(base, index, scale, disp, OPSZ_fnsave)
#define OPND_CREATE_MEM_frstor(base, index, scale, disp)   opnd_create_base_disp(base, index, scale, disp, OPSZ_frstor)
#define OPND_CREATE_MEM_fxsave(base, index, scale, disp)   opnd_create_base_disp(base, index, scale, disp, OPSZ_fxsave)
#define OPND_CREATE_MEM_fxrstor(base, index, scale, disp)   opnd_create_base_disp(base, index, scale, disp, OPSZ_fxrstor)
#define INSTR_CREATE_label(dc)   instr_create_0dst_0src((dc), OP_LABEL)
#define INSTR_CREATE_jcc_short(dc, op, t)   instr_create_0dst_1src((dc), (op), (t))
#define INSTR_CREATE_jcc(dc, op, t)   instr_create_0dst_1src((dc), (op), (t))
#define INSTR_CREATE_jmp_ind(dc, t)   instr_create_0dst_1src((dc), OP_jmp_ind, (t))
#define INSTR_CREATE_jmp_far(dc, t)   instr_create_0dst_1src((dc), OP_jmp_far, (t))
#define INSTR_CREATE_jmp_far_ind(dc, t)   instr_create_0dst_1src((dc), OP_jmp_far_ind, (t))
#define INSTR_CREATE_clflush(dc, s)   instr_create_0dst_1src((dc), OP_clflush, (s))
#define INSTR_CREATE_fldenv(dc, m)   instr_create_0dst_1src((dc), OP_fldenv, (m))
#define INSTR_CREATE_fldcw(dc, m)   instr_create_0dst_1src((dc), OP_fldcw, (m))
#define INSTR_CREATE_frstor(dc, m)   instr_create_0dst_1src((dc), OP_frstor, (m))
#define INSTR_CREATE_jecxz(dc, t)   instr_create_0dst_2src((dc), OP_jecxz, (t), opnd_create_reg(REG_XCX))
#define INSTR_CREATE_jcxz(dc, t)   instr_create_0dst_2src((dc), OP_jecxz, (t), opnd_create_reg(REG_CX))
#define INSTR_CREATE_setcc(dc, op, d)   instr_create_1dst_0src((dc), (op), (d))
#define INSTR_CREATE_ffree(dc, f)   instr_create_1dst_0src((dc), OP_ffree, (f))
#define INSTR_CREATE_fcmovcc(dc, op, f)   instr_create_1dst_1src((dc), (op), opnd_create_reg(REG_ST0), (f))
#define INSTR_CREATE_fld(dc, s)   instr_create_1dst_1src((dc), OP_fld, opnd_create_reg(REG_ST0), (s))
#define INSTR_CREATE_cmovcc(dc, op, d, s)   instr_create_1dst_2src((dc), (op), (d), (s), (d))
#define INSTR_CREATE_imul_imm(dc, d, s, i)   instr_create_1dst_2src((dc), OP_imul, (d), (s), (i))
#define INSTR_CREATE_imul(dc, d, s)   instr_create_1dst_2src((dc), OP_imul, (d), (s), (d))
#define INSTR_CREATE_extrq(dc, d, r)   instr_create_1dst_1src((dc), OP_extrq, (d), (r))
#define INSTR_CREATE_extrq_imm(dc, d, i1, i2)   instr_create_1dst_2src((dc), OP_extrq, (d), (i1), (i2))
#define INSTR_CREATE_insertq(dc, d, r)   instr_create_1dst_1src((dc), OP_insertq, (d), (r))
#define INSTR_CREATE_insertq_imm(dc, d, r, i1, i2)   instr_create_1dst_3src((dc), OP_insertq, (d), (r), (i1), (i2))
#define INSTR_CREATE_rdtsc(dc)   instr_create_2dst_0src((dc), OP_rdtsc, opnd_create_reg(REG_EDX), opnd_create_reg(REG_EAX))
#define INSTR_CREATE_pop(dc, d)
#define INSTR_CREATE_fxch(dc, f)
#define INSTR_CREATE_call(dc, t)
#define INSTR_CREATE_call_ind(dc, t)
#define INSTR_CREATE_call_far(dc, t)
#define INSTR_CREATE_call_far_ind(dc, t)
#define INSTR_CREATE_push(dc, s)
#define INSTR_CREATE_push_imm(dc, i)
#define INSTR_CREATE_int(dc, i)
#define INSTR_CREATE_cmpxchg8b(dc, d)
#define INSTR_CREATE_enter(dc, i16, i8)
#define INSTR_CREATE_popa(dc)   instr_create_popa((dc))
No-operand instructions


#define INSTR_CREATE_fwait(dc)   instr_create_0dst_0src((dc), OP_fwait)
#define INSTR_CREATE_hlt(dc)   instr_create_0dst_0src((dc), OP_hlt)
#define INSTR_CREATE_cmc(dc)   instr_create_0dst_0src((dc), OP_cmc)
#define INSTR_CREATE_clc(dc)   instr_create_0dst_0src((dc), OP_clc)
#define INSTR_CREATE_stc(dc)   instr_create_0dst_0src((dc), OP_stc)
#define INSTR_CREATE_cli(dc)   instr_create_0dst_0src((dc), OP_cli)
#define INSTR_CREATE_sti(dc)   instr_create_0dst_0src((dc), OP_sti)
#define INSTR_CREATE_cld(dc)   instr_create_0dst_0src((dc), OP_cld)
#define INSTR_CREATE_std(dc)   instr_create_0dst_0src((dc), OP_std)
#define INSTR_CREATE_clts(dc)   instr_create_0dst_0src((dc), OP_clts)
#define INSTR_CREATE_invd(dc)   instr_create_0dst_0src((dc), OP_invd)
#define INSTR_CREATE_wbinvd(dc)   instr_create_0dst_0src((dc), OP_wbinvd)
#define INSTR_CREATE_ud2a(dc)   instr_create_0dst_0src((dc), OP_ud2a)
#define INSTR_CREATE_emms(dc)   instr_create_0dst_0src((dc), OP_emms)
#define INSTR_CREATE_rsm(dc)   instr_create_0dst_0src((dc), OP_rsm)
#define INSTR_CREATE_ud2b(dc)   instr_create_0dst_0src((dc), OP_ud2b)
#define INSTR_CREATE_lfence(dc)   instr_create_0dst_0src((dc), OP_lfence)
#define INSTR_CREATE_mfence(dc)   instr_create_0dst_0src((dc), OP_mfence)
#define INSTR_CREATE_sfence(dc)   instr_create_0dst_0src((dc), OP_sfence)
#define INSTR_CREATE_nop(dc)   instr_create_0dst_0src((dc), OP_nop)
#define INSTR_CREATE_pause(dc)   instr_create_0dst_0src((dc), OP_pause)
#define INSTR_CREATE_fnop(dc)   instr_create_0dst_0src((dc), OP_fnop)
#define INSTR_CREATE_fdecstp(dc)   instr_create_0dst_0src((dc), OP_fdecstp)
#define INSTR_CREATE_fincstp(dc)   instr_create_0dst_0src((dc), OP_fincstp)
#define INSTR_CREATE_fnclex(dc)   instr_create_0dst_0src((dc), OP_fnclex)
#define INSTR_CREATE_fninit(dc)   instr_create_0dst_0src((dc), OP_fninit)
#define INSTR_CREATE_sysret(dc)   instr_create_0dst_0src((dc), OP_sysret)
#define INSTR_CREATE_femms(dc)   instr_create_0dst_0src((dc), OP_femms)
#define INSTR_CREATE_swapgs(dc)   instr_create_0dst_0src((dc), OP_swapgs)
#define INSTR_CREATE_vmcall(dc)   instr_create_0dst_0src((dc), OP_vmcall)
#define INSTR_CREATE_vmlaunch(dc)   instr_create_0dst_0src((dc), OP_vmlaunch)
#define INSTR_CREATE_vmresume(dc)   instr_create_0dst_0src((dc), OP_vmresume)
#define INSTR_CREATE_vmxoff(dc)   instr_create_0dst_0src((dc), OP_vmxoff)
Direct unconditional jump


#define INSTR_CREATE_jmp(dc, t)   instr_create_0dst_1src((dc), OP_jmp, (t))
#define INSTR_CREATE_jmp_short(dc, t)   instr_create_0dst_1src((dc), OP_jmp_short, (t))
One explicit source


#define INSTR_CREATE_lldt(dc, s)   instr_create_0dst_1src((dc), OP_lldt, (s))
#define INSTR_CREATE_ltr(dc, s)   instr_create_0dst_1src((dc), OP_ltr, (s))
#define INSTR_CREATE_verr(dc, s)   instr_create_0dst_1src((dc), OP_verr, (s))
#define INSTR_CREATE_verw(dc, s)   instr_create_0dst_1src((dc), OP_verw, (s))
#define INSTR_CREATE_vmptrld(dc, s)   instr_create_0dst_1src((dc), OP_vmptrld, (s))
#define INSTR_CREATE_vmxon(dc, s)   instr_create_0dst_1src((dc), OP_vmxon, (s))
#define INSTR_CREATE_lgdt(dc, s)   instr_create_0dst_1src((dc), OP_lgdt, (s))
#define INSTR_CREATE_lidt(dc, s)   instr_create_0dst_1src((dc), OP_lidt, (s))
#define INSTR_CREATE_lmsw(dc, s)   instr_create_0dst_1src((dc), OP_lmsw, (s))
#define INSTR_CREATE_invlpg(dc, s)   instr_create_0dst_1src((dc), OP_invlpg, (s))
#define INSTR_CREATE_fxrstor(dc, s)   instr_create_0dst_1src((dc), OP_fxrstor, (s))
#define INSTR_CREATE_ldmxcsr(dc, s)   instr_create_0dst_1src((dc), OP_ldmxcsr, (s))
#define INSTR_CREATE_nop_modrm(dc, s)   instr_create_0dst_1src((dc), OP_nop_modrm, (s))
Prefetch


#define INSTR_CREATE_prefetchnta(dc, s)   instr_create_0dst_1src((dc), OP_prefetchnta, (s))
#define INSTR_CREATE_prefetcht0(dc, s)   instr_create_0dst_1src((dc), OP_prefetcht0, (s))
#define INSTR_CREATE_prefetcht1(dc, s)   instr_create_0dst_1src((dc), OP_prefetcht1, (s))
#define INSTR_CREATE_prefetcht2(dc, s)   instr_create_0dst_1src((dc), OP_prefetcht2, (s))
#define INSTR_CREATE_prefetch(dc, s)   instr_create_0dst_1src((dc), OP_prefetch, (s))
#define INSTR_CREATE_prefetchw(dc, s)   instr_create_0dst_1src((dc), OP_prefetchw, (s))
One implicit source


#define INSTR_CREATE_fxam(dc)   instr_create_0dst_1src((dc), OP_fxam, opnd_create_reg(REG_ST0))
#define INSTR_CREATE_sahf(dc)   instr_create_0dst_1src((dc), OP_sahf, opnd_create_reg(REG_AH))
No destination, 2 explicit sources


#define INSTR_CREATE_cmp(dc, s1, s2)   instr_create_0dst_2src((dc), OP_cmp, (s1), (s2))
#define INSTR_CREATE_test(dc, s1, s2)   instr_create_0dst_2src((dc), OP_test, (s1), (s2))
#define INSTR_CREATE_ptest(dc, s1, s2)   instr_create_0dst_2src((dc), OP_ptest, (s1), (s2))
#define INSTR_CREATE_bound(dc, s1, s2)   instr_create_0dst_2src((dc), OP_bound, (s1), (s2))
#define INSTR_CREATE_bt(dc, s, ri)   instr_create_0dst_2src((dc), OP_bt, (s), (ri))
#define INSTR_CREATE_ucomiss(dc, s1, s2)   instr_create_0dst_2src((dc), OP_ucomiss, (s1), (s2))
#define INSTR_CREATE_ucomisd(dc, s1, s2)   instr_create_0dst_2src((dc), OP_ucomisd, (s1), (s2))
#define INSTR_CREATE_comiss(dc, s1, s2)   instr_create_0dst_2src((dc), OP_comiss, (s1), (s2))
#define INSTR_CREATE_comisd(dc, s1, s2)   instr_create_0dst_2src((dc), OP_comisd, (s1), (s2))
No destination, 2 sources


#define INSTR_CREATE_out_1(dc)   instr_create_0dst_2src((dc), OP_out, opnd_create_reg(REG_AL), opnd_create_reg(REG_DX))
#define INSTR_CREATE_out_4(dc)   instr_create_0dst_2src((dc), OP_out, opnd_create_reg(REG_EAX), opnd_create_reg(REG_DX))
No destination, explicit immed source


#define INSTR_CREATE_out_1_imm(dc, i)   instr_create_0dst_2src((dc), OP_out, (i), opnd_create_reg(REG_AL))
#define INSTR_CREATE_out_4_imm(dc, i)   instr_create_0dst_2src((dc), OP_out, (i), opnd_create_reg(REG_EAX))
No destination, 2 implicit sources


#define INSTR_CREATE_mwait(dc)
#define INSTR_CREATE_wrmsr(dc)
#define INSTR_CREATE_monitor(dc)
Floating-point with source of memory or fp register


#define INSTR_CREATE_fcom(dc, s)   instr_create_0dst_2src((dc), OP_fcom, (s), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fcomp(dc, s)   instr_create_0dst_2src((dc), OP_fcomp, (s), opnd_create_reg(REG_ST0))
Floating-point with fp register source


#define INSTR_CREATE_fcomi(dc, f)   instr_create_0dst_2src((dc), OP_fcomi, opnd_create_reg(REG_ST0), (f))
#define INSTR_CREATE_fcomip(dc, f)   instr_create_0dst_2src((dc), OP_fcomip, opnd_create_reg(REG_ST0), (f))
#define INSTR_CREATE_fucomi(dc, f)   instr_create_0dst_2src((dc), OP_fucomi, opnd_create_reg(REG_ST0), (f))
#define INSTR_CREATE_fucomip(dc, f)   instr_create_0dst_2src((dc), OP_fucomip, opnd_create_reg(REG_ST0), (f))
#define INSTR_CREATE_fucom(dc, f)   instr_create_0dst_2src((dc), OP_fucom, opnd_create_reg(REG_ST0), (f))
#define INSTR_CREATE_fucomp(dc, f)   instr_create_0dst_2src((dc), OP_fucomp, opnd_create_reg(REG_ST0), (f))
Floating-point with no explicit sources


#define INSTR_CREATE_fucompp(dc)   instr_create_0dst_2src((dc), OP_fucompp, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1))
#define INSTR_CREATE_fcompp(dc)   instr_create_0dst_2src((dc), OP_fcompp, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1))
1 explicit destination, no sources


#define INSTR_CREATE_sldt(dc, d)   instr_create_1dst_0src((dc), OP_sldt, (d))
#define INSTR_CREATE_str(dc, d)   instr_create_1dst_0src((dc), OP_str, (d))
#define INSTR_CREATE_vmptrst(dc, d)   instr_create_1dst_0src((dc), OP_vmptrst, (d))
#define INSTR_CREATE_vmclear(dc, d)   instr_create_1dst_0src((dc), OP_vmclear, (d))
#define INSTR_CREATE_sgdt(dc, d)   instr_create_1dst_0src((dc), OP_sgdt, (d))
#define INSTR_CREATE_sidt(dc, d)   instr_create_1dst_0src((dc), OP_sidt, (d))
#define INSTR_CREATE_smsw(dc, d)   instr_create_1dst_0src((dc), OP_smsw, (d))
#define INSTR_CREATE_fxsave(dc, d)   instr_create_1dst_0src((dc), OP_fxsave, (d))
#define INSTR_CREATE_stmxcsr(dc, d)   instr_create_1dst_0src((dc), OP_stmxcsr, (d))
Floating-point with memory destination


#define INSTR_CREATE_fnstenv(dc, m)   instr_create_1dst_0src((dc), OP_fnstenv, (m))
#define INSTR_CREATE_fnstcw(dc, m)   instr_create_1dst_0src((dc), OP_fnstcw, (m))
#define INSTR_CREATE_fnsave(dc, m)   instr_create_1dst_0src((dc), OP_fnsave, (m))
#define INSTR_CREATE_fnstsw(dc, m)   instr_create_1dst_0src((dc), OP_fnstsw, (m))
1 implicit destination, no sources


#define INSTR_CREATE_lahf(dc)   instr_create_1dst_0src((dc), OP_lahf, opnd_create_reg(REG_AH))
#define INSTR_CREATE_sysenter(dc)   instr_create_1dst_0src((dc), OP_sysenter, opnd_create_reg(REG_XSP))
#define INSTR_CREATE_sysexit(dc)   instr_create_1dst_0src((dc), OP_sysexit, opnd_create_reg(REG_XSP))
#define INSTR_CREATE_syscall(dc)   instr_create_1dst_0src((dc), OP_syscall, opnd_create_reg(REG_XCX))
#define INSTR_CREATE_salc(dc)   instr_create_1dst_0src((dc), OP_salc, opnd_create_reg(REG_AL))
1 destination, 1 source


#define INSTR_CREATE_arpl(dc, d, s)   instr_create_1dst_1src((dc), OP_arpl, (d), (s))
#define INSTR_CREATE_lea(dc, d, s)   instr_create_1dst_1src((dc), OP_lea, (d), (s))
#define INSTR_CREATE_mov_ld(dc, d, s)   instr_create_1dst_1src((dc), OP_mov_ld, (d), (s))
#define INSTR_CREATE_mov_st(dc, d, s)   instr_create_1dst_1src((dc), OP_mov_st, (d), (s))
#define INSTR_CREATE_mov_imm(dc, d, s)   instr_create_1dst_1src((dc), OP_mov_imm, (d), (s))
#define INSTR_CREATE_mov_seg(dc, d, s)   instr_create_1dst_1src((dc), OP_mov_seg, (d), (s))
#define INSTR_CREATE_mov_priv(dc, d, s)   instr_create_1dst_1src((dc), OP_mov_priv, (d), (s))
#define INSTR_CREATE_lar(dc, d, s)   instr_create_1dst_1src((dc), OP_lar, (d), (s))
#define INSTR_CREATE_lsl(dc, d, s)   instr_create_1dst_1src((dc), OP_lsl, (d), (s))
#define INSTR_CREATE_movntps(dc, d, s)   instr_create_1dst_1src((dc), OP_movntps, (d), (s))
#define INSTR_CREATE_movntpd(dc, d, s)   instr_create_1dst_1src((dc), OP_movntpd, (d), (s))
#define INSTR_CREATE_movd(dc, d, s)   instr_create_1dst_1src((dc), OP_movd, (d), (s))
#define INSTR_CREATE_movq(dc, d, s)   instr_create_1dst_1src((dc), OP_movq, (d), (s))
#define INSTR_CREATE_movdqu(dc, d, s)   instr_create_1dst_1src((dc), OP_movdqu, (d), (s))
#define INSTR_CREATE_movdqa(dc, d, s)   instr_create_1dst_1src((dc), OP_movdqa, (d), (s))
#define INSTR_CREATE_movzx(dc, d, s)   instr_create_1dst_1src((dc), OP_movzx, (d), (s))
#define INSTR_CREATE_movsx(dc, d, s)   instr_create_1dst_1src((dc), OP_movsx, (d), (s))
#define INSTR_CREATE_bsf(dc, d, s)   instr_create_1dst_1src((dc), OP_bsf, (d), (s))
#define INSTR_CREATE_bsr(dc, d, s)   instr_create_1dst_1src((dc), OP_bsr, (d), (s))
#define INSTR_CREATE_pmovmskb(dc, d, s)   instr_create_1dst_1src((dc), OP_pmovmskb, (d), (s))
#define INSTR_CREATE_movups(dc, d, s)   instr_create_1dst_1src((dc), OP_movups, (d), (s))
#define INSTR_CREATE_movss(dc, d, s)   instr_create_1dst_1src((dc), OP_movss, (d), (s))
#define INSTR_CREATE_movupd(dc, d, s)   instr_create_1dst_1src((dc), OP_movupd, (d), (s))
#define INSTR_CREATE_movsd(dc, d, s)   instr_create_1dst_1src((dc), OP_movsd, (d), (s))
#define INSTR_CREATE_movlps(dc, d, s)   instr_create_1dst_1src((dc), OP_movlps, (d), (s))
#define INSTR_CREATE_movlpd(dc, d, s)   instr_create_1dst_1src((dc), OP_movlpd, (d), (s))
#define INSTR_CREATE_movhps(dc, d, s)   instr_create_1dst_1src((dc), OP_movhps, (d), (s))
#define INSTR_CREATE_movhpd(dc, d, s)   instr_create_1dst_1src((dc), OP_movhpd, (d), (s))
#define INSTR_CREATE_movaps(dc, d, s)   instr_create_1dst_1src((dc), OP_movaps, (d), (s))
#define INSTR_CREATE_movapd(dc, d, s)   instr_create_1dst_1src((dc), OP_movapd, (d), (s))
#define INSTR_CREATE_cvtpi2ps(dc, d, s)   instr_create_1dst_1src((dc), OP_cvtpi2ps, (d), (s))
#define INSTR_CREATE_cvtsi2ss(dc, d, s)   instr_create_1dst_1src((dc), OP_cvtsi2ss, (d), (s))
#define INSTR_CREATE_cvtpi2pd(dc, d, s)   instr_create_1dst_1src((dc), OP_cvtpi2pd, (d), (s))
#define INSTR_CREATE_cvtsi2sd(dc, d, s)   instr_create_1dst_1src((dc), OP_cvtsi2sd, (d), (s))
#define INSTR_CREATE_cvttps2pi(dc, d, s)   instr_create_1dst_1src((dc), OP_cvttps2pi, (d), (s))
#define INSTR_CREATE_cvttss2si(dc, d, s)   instr_create_1dst_1src((dc), OP_cvttss2si, (d), (s))
#define INSTR_CREATE_cvttpd2pi(dc, d, s)   instr_create_1dst_1src((dc), OP_cvttpd2pi, (d), (s))
#define INSTR_CREATE_cvttsd2si(dc, d, s)   instr_create_1dst_1src((dc), OP_cvttsd2si, (d), (s))
#define INSTR_CREATE_cvtps2pi(dc, d, s)   instr_create_1dst_1src((dc), OP_cvtps2pi, (d), (s))
#define INSTR_CREATE_cvtss2si(dc, d, s)   instr_create_1dst_1src((dc), OP_cvtss2si, (d), (s))
#define INSTR_CREATE_cvtpd2pi(dc, d, s)   instr_create_1dst_1src((dc), OP_cvtpd2pi, (d), (s))
#define INSTR_CREATE_cvtsd2si(dc, d, s)   instr_create_1dst_1src((dc), OP_cvtsd2si, (d), (s))
#define INSTR_CREATE_cvtps2pd(dc, d, s)   instr_create_1dst_1src((dc), OP_cvtps2pd, (d), (s))
#define INSTR_CREATE_cvtss2sd(dc, d, s)   instr_create_1dst_1src((dc), OP_cvtss2sd, (d), (s))
#define INSTR_CREATE_cvtpd2ps(dc, d, s)   instr_create_1dst_1src((dc), OP_cvtpd2ps, (d), (s))
#define INSTR_CREATE_cvtsd2ss(dc, d, s)   instr_create_1dst_1src((dc), OP_cvtsd2ss, (d), (s))
#define INSTR_CREATE_cvtdq2ps(dc, d, s)   instr_create_1dst_1src((dc), OP_cvtdq2ps, (d), (s))
#define INSTR_CREATE_cvttps2dq(dc, d, s)   instr_create_1dst_1src((dc), OP_cvttps2dq, (d), (s))
#define INSTR_CREATE_cvtps2dq(dc, d, s)   instr_create_1dst_1src((dc), OP_cvtps2dq, (d), (s))
#define INSTR_CREATE_cvtdq2pd(dc, d, s)   instr_create_1dst_1src((dc), OP_cvtdq2pd, (d), (s))
#define INSTR_CREATE_cvttpd2dq(dc, d, s)   instr_create_1dst_1src((dc), OP_cvttpd2dq, (d), (s))
#define INSTR_CREATE_cvtpd2dq(dc, d, s)   instr_create_1dst_1src((dc), OP_cvtpd2dq, (d), (s))
#define INSTR_CREATE_movmskps(dc, d, s)   instr_create_1dst_1src((dc), OP_movmskps, (d), (s))
#define INSTR_CREATE_movmskpd(dc, d, s)   instr_create_1dst_1src((dc), OP_movmskpd, (d), (s))
#define INSTR_CREATE_sqrtps(dc, d, s)   instr_create_1dst_1src((dc), OP_sqrtps, (d), (s))
#define INSTR_CREATE_sqrtss(dc, d, s)   instr_create_1dst_1src((dc), OP_sqrtss, (d), (s))
#define INSTR_CREATE_sqrtpd(dc, d, s)   instr_create_1dst_1src((dc), OP_sqrtpd, (d), (s))
#define INSTR_CREATE_sqrtsd(dc, d, s)   instr_create_1dst_1src((dc), OP_sqrtsd, (d), (s))
#define INSTR_CREATE_rsqrtps(dc, d, s)   instr_create_1dst_1src((dc), OP_rsqrtps, (d), (s))
#define INSTR_CREATE_rsqrtss(dc, d, s)   instr_create_1dst_1src((dc), OP_rsqrtss, (d), (s))
#define INSTR_CREATE_rcpps(dc, d, s)   instr_create_1dst_1src((dc), OP_rcpps, (d), (s))
#define INSTR_CREATE_rcpss(dc, d, s)   instr_create_1dst_1src((dc), OP_rcpss, (d), (s))
#define INSTR_CREATE_lddqu(dc, d, s)   instr_create_1dst_1src((dc), OP_lddqu, (d), (s))
#define INSTR_CREATE_movsldup(dc, d, s)   instr_create_1dst_1src((dc), OP_movsldup, (d), (s))
#define INSTR_CREATE_movshdup(dc, d, s)   instr_create_1dst_1src((dc), OP_movshdup, (d), (s))
#define INSTR_CREATE_movddup(dc, d, s)   instr_create_1dst_1src((dc), OP_movddup, (d), (s))
#define INSTR_CREATE_pshufb(dc, d, s)   instr_create_1dst_1src((dc), OP_pshufb, (d), (s))
#define INSTR_CREATE_popcnt(dc, d, s)   instr_create_1dst_1src((dc), OP_popcnt, (d), (s))
#define INSTR_CREATE_movntss(dc, d, s)   instr_create_1dst_1src((dc), OP_movntss, (d), (s))
#define INSTR_CREATE_movntsd(dc, d, s)   instr_create_1dst_1src((dc), OP_movntsd, (d), (s))
#define INSTR_CREATE_movntq(dc, d, s)   instr_create_1dst_1src((dc), OP_movntq, (d), (s))
#define INSTR_CREATE_movntdq(dc, d, s)   instr_create_1dst_1src((dc), OP_movntdq, (d), (s))
#define INSTR_CREATE_movnti(dc, d, s)   instr_create_1dst_1src((dc), OP_movnti, (d), (s))
#define INSTR_CREATE_lzcnt(dc, d, s)   instr_create_1dst_1src((dc), OP_lzcnt, (d), (s))
#define INSTR_CREATE_pmovsxbw(dc, d, s)   instr_create_1dst_1src((dc), OP_pmovsxbw, (d), (s))
#define INSTR_CREATE_pmovsxbd(dc, d, s)   instr_create_1dst_1src((dc), OP_pmovsxbd, (d), (s))
#define INSTR_CREATE_pmovsxbq(dc, d, s)   instr_create_1dst_1src((dc), OP_pmovsxbq, (d), (s))
#define INSTR_CREATE_pmovsxdw(dc, d, s)   instr_create_1dst_1src((dc), OP_pmovsxdw, (d), (s))
#define INSTR_CREATE_pmovsxwq(dc, d, s)   instr_create_1dst_1src((dc), OP_pmovsxwq, (d), (s))
#define INSTR_CREATE_pmovsxdq(dc, d, s)   instr_create_1dst_1src((dc), OP_pmovsxdq, (d), (s))
#define INSTR_CREATE_movntdqa(dc, d, s)   instr_create_1dst_1src((dc), OP_movntdqa, (d), (s))
#define INSTR_CREATE_pmovzxbw(dc, d, s)   instr_create_1dst_1src((dc), OP_pmovzxbw, (d), (s))
#define INSTR_CREATE_pmovzxbd(dc, d, s)   instr_create_1dst_1src((dc), OP_pmovzxbd, (d), (s))
#define INSTR_CREATE_pmovzxbq(dc, d, s)   instr_create_1dst_1src((dc), OP_pmovzxbq, (d), (s))
#define INSTR_CREATE_pmovzxdw(dc, d, s)   instr_create_1dst_1src((dc), OP_pmovzxdw, (d), (s))
#define INSTR_CREATE_pmovzxwq(dc, d, s)   instr_create_1dst_1src((dc), OP_pmovzxwq, (d), (s))
#define INSTR_CREATE_pmovzxdq(dc, d, s)   instr_create_1dst_1src((dc), OP_pmovzxdq, (d), (s))
#define INSTR_CREATE_phminposuw(dc, d, s)   instr_create_1dst_1src((dc), OP_phminposuw, (d), (s))
#define INSTR_CREATE_vmread(dc, d, s)   instr_create_1dst_1src((dc), OP_vmread, (d), (s))
#define INSTR_CREATE_vmwrite(dc, d, s)   instr_create_1dst_1src((dc), OP_vmwrite, (d), (s))
#define INSTR_CREATE_movsxd(dc, d, s)   instr_create_1dst_1src((dc), OP_movsxd, (d), (s))
1 destination, 1 implicit source


#define INSTR_CREATE_inc(dc, d)   instr_create_1dst_1src((dc), OP_inc, (d), (d))
#define INSTR_CREATE_dec(dc, d)   instr_create_1dst_1src((dc), OP_dec, (d), (d))
#define INSTR_CREATE_bswap(dc, d)   instr_create_1dst_1src((dc), OP_bswap, (d), (d))
#define INSTR_CREATE_not(dc, d)   instr_create_1dst_1src((dc), OP_not, (d), (d))
#define INSTR_CREATE_neg(dc, d)   instr_create_1dst_1src((dc), OP_neg, (d), (d))
1 implicit destination, 1 implicit source


#define INSTR_CREATE_cdq(dc)   instr_create_1dst_1src((dc), OP_cdq, opnd_create_reg(REG_EDX), opnd_create_reg(REG_EAX))
#define INSTR_CREATE_daa(dc)   instr_create_1dst_1src((dc), OP_daa, opnd_create_reg(REG_AL), opnd_create_reg(REG_AL))
#define INSTR_CREATE_das(dc)   instr_create_1dst_1src((dc), OP_das, opnd_create_reg(REG_AL), opnd_create_reg(REG_AL))
#define INSTR_CREATE_aaa(dc)   instr_create_1dst_1src((dc), OP_aaa, opnd_create_reg(REG_AX), opnd_create_reg(REG_AX))
#define INSTR_CREATE_aas(dc)   instr_create_1dst_1src((dc), OP_aas, opnd_create_reg(REG_AX), opnd_create_reg(REG_AX))
#define INSTR_CREATE_cwde(dc)   instr_create_1dst_1src((dc), OP_cwde, opnd_create_reg(REG_EAX), opnd_create_reg(REG_AX))
#define INSTR_CREATE_xlat(dc)
In with no explicit sources


#define INSTR_CREATE_in_1(dc)   instr_create_1dst_1src((dc), OP_in, opnd_create_reg(REG_AL), opnd_create_reg(REG_DX))
#define INSTR_CREATE_in_4(dc)   instr_create_1dst_1src((dc), OP_in, opnd_create_reg(REG_EAX), opnd_create_reg(REG_DX))
In with explicit source


#define INSTR_CREATE_in_1_imm(dc, i)   instr_create_1dst_1src((dc), OP_in, opnd_create_reg(REG_AL), (i))
#define INSTR_CREATE_in_4_imm(dc, i)   instr_create_1dst_1src((dc), OP_in, opnd_create_reg(REG_EAX), (i))
Floating point with destination that is memory or fp register


#define INSTR_CREATE_fst(dc, d)   instr_create_1dst_1src((dc), OP_fst, (d), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fstp(dc, d)   instr_create_1dst_1src((dc), OP_fstp, (d), opnd_create_reg(REG_ST0))
Floating-point with memory destination and implicit source


#define INSTR_CREATE_fist(dc, m)   instr_create_1dst_1src((dc), OP_fist, (m), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fistp(dc, m)   instr_create_1dst_1src((dc), OP_fistp, (m), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fisttp(dc, m)   instr_create_1dst_1src((dc), OP_fisttp, (m), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fbstp(dc, m)   instr_create_1dst_1src((dc), OP_fbstp, (m), opnd_create_reg(REG_ST0))
Floating-point with memory source


#define INSTR_CREATE_fild(dc, m)   instr_create_1dst_1src((dc), OP_fild, opnd_create_reg(REG_ST0), (m))
#define INSTR_CREATE_fbld(dc, m)   instr_create_1dst_1src((dc), OP_fbld, opnd_create_reg(REG_ST0), (m))
Floating-point implicit destination and implicit source


#define INSTR_CREATE_fchs(dc)   instr_create_1dst_1src((dc), OP_fchs, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fabs(dc)   instr_create_1dst_1src((dc), OP_fabs, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_ftst(dc)   instr_create_1dst_1src((dc), OP_ftst, opnd_create_reg(REG_ST0), opnd_create_immed_float(0.0f))
#define INSTR_CREATE_fld1(dc)   instr_create_1dst_1src((dc), OP_fld1, opnd_create_reg(REG_ST0), opnd_create_immed_float(1.0f))
#define INSTR_CREATE_fldl2t(dc)
#define INSTR_CREATE_fldl2e(dc)
#define INSTR_CREATE_fldpi(dc)
#define INSTR_CREATE_fldlg2(dc)
#define INSTR_CREATE_fldln2(dc)
#define INSTR_CREATE_fldz(dc)   instr_create_1dst_1src((dc), OP_fldz, opnd_create_reg(REG_ST0), opnd_create_immed_float(0.0f))
#define INSTR_CREATE_f2xm1(dc)   instr_create_1dst_1src((dc), OP_f2xm1, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fptan(dc)   instr_create_1dst_1src((dc), OP_fptan, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fxtract(dc)   instr_create_1dst_1src((dc), OP_fxtract, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fsqrt(dc)   instr_create_1dst_1src((dc), OP_fsqrt, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fsincos(dc)   instr_create_1dst_1src((dc), OP_fsincos, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_frndint(dc)   instr_create_1dst_1src((dc), OP_frndint, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fsin(dc)   instr_create_1dst_1src((dc), OP_fsin, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fcos(dc)   instr_create_1dst_1src((dc), OP_fcos, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fscale(dc)
#define INSTR_CREATE_fyl2x(dc)
#define INSTR_CREATE_fyl2xp1(dc)
#define INSTR_CREATE_fpatan(dc)
#define INSTR_CREATE_fprem(dc)
#define INSTR_CREATE_fprem1(dc)
1 destination, 2 sources


#define INSTR_CREATE_pshufw(dc, d, s, i)   instr_create_1dst_2src((dc), OP_pshufw, (d), (s), (i))
#define INSTR_CREATE_pshufd(dc, d, s, i)   instr_create_1dst_2src((dc), OP_pshufd, (d), (s), (i))
#define INSTR_CREATE_pshufhw(dc, d, s, i)   instr_create_1dst_2src((dc), OP_pshufhw, (d), (s), (i))
#define INSTR_CREATE_pshuflw(dc, d, s, i)   instr_create_1dst_2src((dc), OP_pshuflw, (d), (s), (i))
#define INSTR_CREATE_pinsrw(dc, d, s, i)   instr_create_1dst_2src((dc), OP_pinsrw, (d), (s), (i))
#define INSTR_CREATE_pextrw(dc, d, s, i)   instr_create_1dst_2src((dc), OP_pextrw, (d), (s), (i))
#define INSTR_CREATE_pextrb(dc, d, s, i)   instr_create_1dst_2src((dc), OP_pextrb, (d), (s), (i))
#define INSTR_CREATE_pextrd(dc, d, s, i)   instr_create_1dst_2src((dc), OP_pextrd, (d), (s), (i))
#define INSTR_CREATE_extractps(dc, d, s, i)   instr_create_1dst_2src((dc), OP_extractps, (d), (s), (i))
#define INSTR_CREATE_roundps(dc, d, s, i)   instr_create_1dst_2src((dc), OP_roundps, (d), (s), (i))
#define INSTR_CREATE_roundpd(dc, d, s, i)   instr_create_1dst_2src((dc), OP_roundpd, (d), (s), (i))
#define INSTR_CREATE_roundss(dc, d, s, i)   instr_create_1dst_2src((dc), OP_roundss, (d), (s), (i))
#define INSTR_CREATE_roundsd(dc, d, s, i)   instr_create_1dst_2src((dc), OP_roundsd, (d), (s), (i))
#define INSTR_CREATE_blendps(dc, d, s, i)   instr_create_1dst_2src((dc), OP_blendps, (d), (s), (i))
#define INSTR_CREATE_blendpd(dc, d, s, i)   instr_create_1dst_2src((dc), OP_blendpd, (d), (s), (i))
#define INSTR_CREATE_pblendw(dc, d, s, i)   instr_create_1dst_2src((dc), OP_pblendw, (d), (s), (i))
#define INSTR_CREATE_pinsrb(dc, d, s, i)   instr_create_1dst_2src((dc), OP_pinsrb, (d), (s), (i))
#define INSTR_CREATE_insertps(dc, d, s, i)   instr_create_1dst_2src((dc), OP_insertps, (d), (s), (i))
#define INSTR_CREATE_pinsrd(dc, d, s, i)   instr_create_1dst_2src((dc), OP_pinsrd, (d), (s), (i))
1 destination, 2 sources: 1 explicit, 1 implicit


#define INSTR_CREATE_add(dc, d, s)   instr_create_1dst_2src((dc), OP_add, (d), (s), (d))
#define INSTR_CREATE_or(dc, d, s)   instr_create_1dst_2src((dc), OP_or, (d), (s), (d))
#define INSTR_CREATE_adc(dc, d, s)   instr_create_1dst_2src((dc), OP_adc, (d), (s), (d))
#define INSTR_CREATE_sbb(dc, d, s)   instr_create_1dst_2src((dc), OP_sbb, (d), (s), (d))
#define INSTR_CREATE_and(dc, d, s)   instr_create_1dst_2src((dc), OP_and, (d), (s), (d))
#define INSTR_CREATE_sub(dc, d, s)   instr_create_1dst_2src((dc), OP_sub, (d), (s), (d))
#define INSTR_CREATE_xor(dc, d, s)   instr_create_1dst_2src((dc), OP_xor, (d), (s), (d))
#define INSTR_CREATE_punpcklbw(dc, d, s)   instr_create_1dst_2src((dc), OP_punpcklbw, (d), (s), (d))
#define INSTR_CREATE_punpcklwd(dc, d, s)   instr_create_1dst_2src((dc), OP_punpcklwd, (d), (s), (d))
#define INSTR_CREATE_punpckldq(dc, d, s)   instr_create_1dst_2src((dc), OP_punpckldq, (d), (s), (d))
#define INSTR_CREATE_packsswb(dc, d, s)   instr_create_1dst_2src((dc), OP_packsswb, (d), (s), (d))
#define INSTR_CREATE_pcmpgtb(dc, d, s)   instr_create_1dst_2src((dc), OP_pcmpgtb, (d), (s), (d))
#define INSTR_CREATE_pcmpgtw(dc, d, s)   instr_create_1dst_2src((dc), OP_pcmpgtw, (d), (s), (d))
#define INSTR_CREATE_pcmpgtd(dc, d, s)   instr_create_1dst_2src((dc), OP_pcmpgtd, (d), (s), (d))
#define INSTR_CREATE_packuswb(dc, d, s)   instr_create_1dst_2src((dc), OP_packuswb, (d), (s), (d))
#define INSTR_CREATE_punpckhbw(dc, d, s)   instr_create_1dst_2src((dc), OP_punpckhbw, (d), (s), (d))
#define INSTR_CREATE_punpckhwd(dc, d, s)   instr_create_1dst_2src((dc), OP_punpckhwd, (d), (s), (d))
#define INSTR_CREATE_punpckhdq(dc, d, s)   instr_create_1dst_2src((dc), OP_punpckhdq, (d), (s), (d))
#define INSTR_CREATE_packssdw(dc, d, s)   instr_create_1dst_2src((dc), OP_packssdw, (d), (s), (d))
#define INSTR_CREATE_punpcklqdq(dc, d, s)   instr_create_1dst_2src((dc), OP_punpcklqdq, (d), (s), (d))
#define INSTR_CREATE_punpckhqdq(dc, d, s)   instr_create_1dst_2src((dc), OP_punpckhqdq, (d), (s), (d))
#define INSTR_CREATE_pcmpeqb(dc, d, s)   instr_create_1dst_2src((dc), OP_pcmpeqb, (d), (s), (d))
#define INSTR_CREATE_pcmpeqw(dc, d, s)   instr_create_1dst_2src((dc), OP_pcmpeqw, (d), (s), (d))
#define INSTR_CREATE_pcmpeqd(dc, d, s)   instr_create_1dst_2src((dc), OP_pcmpeqd, (d), (s), (d))
#define INSTR_CREATE_psrlw(dc, d, s)   instr_create_1dst_2src((dc), OP_psrlw, (d), (s), (d))
#define INSTR_CREATE_psrld(dc, d, s)   instr_create_1dst_2src((dc), OP_psrld, (d), (s), (d))
#define INSTR_CREATE_psrlq(dc, d, s)   instr_create_1dst_2src((dc), OP_psrlq, (d), (s), (d))
#define INSTR_CREATE_paddq(dc, d, s)   instr_create_1dst_2src((dc), OP_paddq, (d), (s), (d))
#define INSTR_CREATE_pmullw(dc, d, s)   instr_create_1dst_2src((dc), OP_pmullw, (d), (s), (d))
#define INSTR_CREATE_psubusb(dc, d, s)   instr_create_1dst_2src((dc), OP_psubusb, (d), (s), (d))
#define INSTR_CREATE_psubusw(dc, d, s)   instr_create_1dst_2src((dc), OP_psubusw, (d), (s), (d))
#define INSTR_CREATE_pminub(dc, d, s)   instr_create_1dst_2src((dc), OP_pminub, (d), (s), (d))
#define INSTR_CREATE_pand(dc, d, s)   instr_create_1dst_2src((dc), OP_pand, (d), (s), (d))
#define INSTR_CREATE_paddusb(dc, d, s)   instr_create_1dst_2src((dc), OP_paddusb, (d), (s), (d))
#define INSTR_CREATE_paddusw(dc, d, s)   instr_create_1dst_2src((dc), OP_paddusw, (d), (s), (d))
#define INSTR_CREATE_pmaxub(dc, d, s)   instr_create_1dst_2src((dc), OP_pmaxub, (d), (s), (d))
#define INSTR_CREATE_pandn(dc, d, s)   instr_create_1dst_2src((dc), OP_pandn, (d), (s), (d))
#define INSTR_CREATE_pavgb(dc, d, s)   instr_create_1dst_2src((dc), OP_pavgb, (d), (s), (d))
#define INSTR_CREATE_psraw(dc, d, s)   instr_create_1dst_2src((dc), OP_psraw, (d), (s), (d))
#define INSTR_CREATE_psrad(dc, d, s)   instr_create_1dst_2src((dc), OP_psrad, (d), (s), (d))
#define INSTR_CREATE_pavgw(dc, d, s)   instr_create_1dst_2src((dc), OP_pavgw, (d), (s), (d))
#define INSTR_CREATE_pmulhuw(dc, d, s)   instr_create_1dst_2src((dc), OP_pmulhuw, (d), (s), (d))
#define INSTR_CREATE_pmulhw(dc, d, s)   instr_create_1dst_2src((dc), OP_pmulhw, (d), (s), (d))
#define INSTR_CREATE_psubsb(dc, d, s)   instr_create_1dst_2src((dc), OP_psubsb, (d), (s), (d))
#define INSTR_CREATE_psubsw(dc, d, s)   instr_create_1dst_2src((dc), OP_psubsw, (d), (s), (d))
#define INSTR_CREATE_pminsw(dc, d, s)   instr_create_1dst_2src((dc), OP_pminsw, (d), (s), (d))
#define INSTR_CREATE_por(dc, d, s)   instr_create_1dst_2src((dc), OP_por, (d), (s), (d))
#define INSTR_CREATE_paddsb(dc, d, s)   instr_create_1dst_2src((dc), OP_paddsb, (d), (s), (d))
#define INSTR_CREATE_paddsw(dc, d, s)   instr_create_1dst_2src((dc), OP_paddsw, (d), (s), (d))
#define INSTR_CREATE_pmaxsw(dc, d, s)   instr_create_1dst_2src((dc), OP_pmaxsw, (d), (s), (d))
#define INSTR_CREATE_pxor(dc, d, s)   instr_create_1dst_2src((dc), OP_pxor, (d), (s), (d))
#define INSTR_CREATE_psllw(dc, d, s)   instr_create_1dst_2src((dc), OP_psllw, (d), (s), (d))
#define INSTR_CREATE_pslld(dc, d, s)   instr_create_1dst_2src((dc), OP_pslld, (d), (s), (d))
#define INSTR_CREATE_psllq(dc, d, s)   instr_create_1dst_2src((dc), OP_psllq, (d), (s), (d))
#define INSTR_CREATE_pmuludq(dc, d, s)   instr_create_1dst_2src((dc), OP_pmuludq, (d), (s), (d))
#define INSTR_CREATE_pmaddwd(dc, d, s)   instr_create_1dst_2src((dc), OP_pmaddwd, (d), (s), (d))
#define INSTR_CREATE_psadbw(dc, d, s)   instr_create_1dst_2src((dc), OP_psadbw, (d), (s), (d))
#define INSTR_CREATE_psubb(dc, d, s)   instr_create_1dst_2src((dc), OP_psubb, (d), (s), (d))
#define INSTR_CREATE_psubw(dc, d, s)   instr_create_1dst_2src((dc), OP_psubw, (d), (s), (d))
#define INSTR_CREATE_psubd(dc, d, s)   instr_create_1dst_2src((dc), OP_psubd, (d), (s), (d))
#define INSTR_CREATE_psubq(dc, d, s)   instr_create_1dst_2src((dc), OP_psubq, (d), (s), (d))
#define INSTR_CREATE_paddb(dc, d, s)   instr_create_1dst_2src((dc), OP_paddb, (d), (s), (d))
#define INSTR_CREATE_paddw(dc, d, s)   instr_create_1dst_2src((dc), OP_paddw, (d), (s), (d))
#define INSTR_CREATE_paddd(dc, d, s)   instr_create_1dst_2src((dc), OP_paddd, (d), (s), (d))
#define INSTR_CREATE_psrldq(dc, d, s)   instr_create_1dst_2src((dc), OP_psrldq, (d), (s), (d))
#define INSTR_CREATE_pslldq(dc, d, s)   instr_create_1dst_2src((dc), OP_pslldq, (d), (s), (d))
#define INSTR_CREATE_unpcklps(dc, d, s)   instr_create_1dst_2src((dc), OP_unpcklps, (d), (s), (d))
#define INSTR_CREATE_unpcklpd(dc, d, s)   instr_create_1dst_2src((dc), OP_unpcklpd, (d), (s), (d))
#define INSTR_CREATE_unpckhps(dc, d, s)   instr_create_1dst_2src((dc), OP_unpckhps, (d), (s), (d))
#define INSTR_CREATE_unpckhpd(dc, d, s)   instr_create_1dst_2src((dc), OP_unpckhpd, (d), (s), (d))
#define INSTR_CREATE_andps(dc, d, s)   instr_create_1dst_2src((dc), OP_andps, (d), (s), (d))
#define INSTR_CREATE_andpd(dc, d, s)   instr_create_1dst_2src((dc), OP_andpd, (d), (s), (d))
#define INSTR_CREATE_andnps(dc, d, s)   instr_create_1dst_2src((dc), OP_andnps, (d), (s), (d))
#define INSTR_CREATE_andnpd(dc, d, s)   instr_create_1dst_2src((dc), OP_andnpd, (d), (s), (d))
#define INSTR_CREATE_orps(dc, d, s)   instr_create_1dst_2src((dc), OP_orps, (d), (s), (d))
#define INSTR_CREATE_orpd(dc, d, s)   instr_create_1dst_2src((dc), OP_orpd, (d), (s), (d))
#define INSTR_CREATE_xorps(dc, d, s)   instr_create_1dst_2src((dc), OP_xorps, (d), (s), (d))
#define INSTR_CREATE_xorpd(dc, d, s)   instr_create_1dst_2src((dc), OP_xorpd, (d), (s), (d))
#define INSTR_CREATE_addps(dc, d, s)   instr_create_1dst_2src((dc), OP_addps, (d), (s), (d))
#define INSTR_CREATE_addss(dc, d, s)   instr_create_1dst_2src((dc), OP_addss, (d), (s), (d))
#define INSTR_CREATE_addpd(dc, d, s)   instr_create_1dst_2src((dc), OP_addpd, (d), (s), (d))
#define INSTR_CREATE_addsd(dc, d, s)   instr_create_1dst_2src((dc), OP_addsd, (d), (s), (d))
#define INSTR_CREATE_mulps(dc, d, s)   instr_create_1dst_2src((dc), OP_mulps, (d), (s), (d))
#define INSTR_CREATE_mulss(dc, d, s)   instr_create_1dst_2src((dc), OP_mulss, (d), (s), (d))
#define INSTR_CREATE_mulpd(dc, d, s)   instr_create_1dst_2src((dc), OP_mulpd, (d), (s), (d))
#define INSTR_CREATE_mulsd(dc, d, s)   instr_create_1dst_2src((dc), OP_mulsd, (d), (s), (d))
#define INSTR_CREATE_subps(dc, d, s)   instr_create_1dst_2src((dc), OP_subps, (d), (s), (d))
#define INSTR_CREATE_subss(dc, d, s)   instr_create_1dst_2src((dc), OP_subss, (d), (s), (d))
#define INSTR_CREATE_subpd(dc, d, s)   instr_create_1dst_2src((dc), OP_subpd, (d), (s), (d))
#define INSTR_CREATE_subsd(dc, d, s)   instr_create_1dst_2src((dc), OP_subsd, (d), (s), (d))
#define INSTR_CREATE_minps(dc, d, s)   instr_create_1dst_2src((dc), OP_minps, (d), (s), (d))
#define INSTR_CREATE_minss(dc, d, s)   instr_create_1dst_2src((dc), OP_minss, (d), (s), (d))
#define INSTR_CREATE_minpd(dc, d, s)   instr_create_1dst_2src((dc), OP_minpd, (d), (s), (d))
#define INSTR_CREATE_minsd(dc, d, s)   instr_create_1dst_2src((dc), OP_minsd, (d), (s), (d))
#define INSTR_CREATE_divps(dc, d, s)   instr_create_1dst_2src((dc), OP_divps, (d), (s), (d))
#define INSTR_CREATE_divss(dc, d, s)   instr_create_1dst_2src((dc), OP_divss, (d), (s), (d))
#define INSTR_CREATE_divpd(dc, d, s)   instr_create_1dst_2src((dc), OP_divpd, (d), (s), (d))
#define INSTR_CREATE_divsd(dc, d, s)   instr_create_1dst_2src((dc), OP_divsd, (d), (s), (d))
#define INSTR_CREATE_maxps(dc, d, s)   instr_create_1dst_2src((dc), OP_maxps, (d), (s), (d))
#define INSTR_CREATE_maxss(dc, d, s)   instr_create_1dst_2src((dc), OP_maxss, (d), (s), (d))
#define INSTR_CREATE_maxpd(dc, d, s)   instr_create_1dst_2src((dc), OP_maxpd, (d), (s), (d))
#define INSTR_CREATE_maxsd(dc, d, s)   instr_create_1dst_2src((dc), OP_maxsd, (d), (s), (d))
#define INSTR_CREATE_haddpd(dc, d, s)   instr_create_1dst_2src((dc), OP_haddpd, (d), (s), (d))
#define INSTR_CREATE_haddps(dc, d, s)   instr_create_1dst_2src((dc), OP_haddps, (d), (s), (d))
#define INSTR_CREATE_hsubpd(dc, d, s)   instr_create_1dst_2src((dc), OP_hsubpd, (d), (s), (d))
#define INSTR_CREATE_hsubps(dc, d, s)   instr_create_1dst_2src((dc), OP_hsubps, (d), (s), (d))
#define INSTR_CREATE_addsubpd(dc, d, s)   instr_create_1dst_2src((dc), OP_addsubpd, (d), (s), (d))
#define INSTR_CREATE_addsubps(dc, d, s)   instr_create_1dst_2src((dc), OP_addsubps, (d), (s), (d))
#define INSTR_CREATE_pavgusb(dc, d, s)   instr_create_1dst_2src((dc), OP_pavgusb, (d), (s), (d))
#define INSTR_CREATE_pfadd(dc, d, s)   instr_create_1dst_2src((dc), OP_pfadd, (d), (s), (d))
#define INSTR_CREATE_pfacc(dc, d, s)   instr_create_1dst_2src((dc), OP_pfacc, (d), (s), (d))
#define INSTR_CREATE_pfcmpge(dc, d, s)   instr_create_1dst_2src((dc), OP_pfcmpge, (d), (s), (d))
#define INSTR_CREATE_pfcmpgt(dc, d, s)   instr_create_1dst_2src((dc), OP_pfcmpgt, (d), (s), (d))
#define INSTR_CREATE_pfcmpeq(dc, d, s)   instr_create_1dst_2src((dc), OP_pfcmpeq, (d), (s), (d))
#define INSTR_CREATE_pfmin(dc, d, s)   instr_create_1dst_2src((dc), OP_pfmin, (d), (s), (d))
#define INSTR_CREATE_pfmax(dc, d, s)   instr_create_1dst_2src((dc), OP_pfmax, (d), (s), (d))
#define INSTR_CREATE_pfmul(dc, d, s)   instr_create_1dst_2src((dc), OP_pfmul, (d), (s), (d))
#define INSTR_CREATE_pfrcp(dc, d, s)   instr_create_1dst_2src((dc), OP_pfrcp, (d), (s), (d))
#define INSTR_CREATE_pfrcpit1(dc, d, s)   instr_create_1dst_2src((dc), OP_pfrcpit1, (d), (s), (d))
#define INSTR_CREATE_pfrcpit2(dc, d, s)   instr_create_1dst_2src((dc), OP_pfrcpit2, (d), (s), (d))
#define INSTR_CREATE_pfrsqrt(dc, d, s)   instr_create_1dst_2src((dc), OP_pfrsqrt, (d), (s), (d))
#define INSTR_CREATE_pfrsqit1(dc, d, s)   instr_create_1dst_2src((dc), OP_pfrsqit1, (d), (s), (d))
#define INSTR_CREATE_pmulhrw(dc, d, s)   instr_create_1dst_2src((dc), OP_pmulhrw, (d), (s), (d))
#define INSTR_CREATE_pfsub(dc, d, s)   instr_create_1dst_2src((dc), OP_pfsub, (d), (s), (d))
#define INSTR_CREATE_pfsubr(dc, d, s)   instr_create_1dst_2src((dc), OP_pfsubr, (d), (s), (d))
#define INSTR_CREATE_pi2fd(dc, d, s)   instr_create_1dst_2src((dc), OP_pi2fd, (d), (s), (d))
#define INSTR_CREATE_pf2id(dc, d, s)   instr_create_1dst_2src((dc), OP_pf2id, (d), (s), (d))
#define INSTR_CREATE_pi2fw(dc, d, s)   instr_create_1dst_2src((dc), OP_pi2fw, (d), (s), (d))
#define INSTR_CREATE_pf2iw(dc, d, s)   instr_create_1dst_2src((dc), OP_pf2iw, (d), (s), (d))
#define INSTR_CREATE_pfnacc(dc, d, s)   instr_create_1dst_2src((dc), OP_pfnacc, (d), (s), (d))
#define INSTR_CREATE_pfpnacc(dc, d, s)   instr_create_1dst_2src((dc), OP_pfpnacc, (d), (s), (d))
#define INSTR_CREATE_pswapd(dc, d, s)   instr_create_1dst_2src((dc), OP_pswapd, (d), (s), (d))
#define INSTR_CREATE_phaddw(dc, d, s)   instr_create_1dst_2src((dc), OP_phaddw, (d), (s), (d))
#define INSTR_CREATE_phaddd(dc, d, s)   instr_create_1dst_2src((dc), OP_phaddd, (d), (s), (d))
#define INSTR_CREATE_phaddsw(dc, d, s)   instr_create_1dst_2src((dc), OP_phaddsw, (d), (s), (d))
#define INSTR_CREATE_pmaddubsw(dc, d, s)   instr_create_1dst_2src((dc), OP_pmaddubsw, (d), (s), (d))
#define INSTR_CREATE_phsubw(dc, d, s)   instr_create_1dst_2src((dc), OP_phsubw, (d), (s), (d))
#define INSTR_CREATE_phsubd(dc, d, s)   instr_create_1dst_2src((dc), OP_phsubd, (d), (s), (d))
#define INSTR_CREATE_phsubsw(dc, d, s)   instr_create_1dst_2src((dc), OP_phsubsw, (d), (s), (d))
#define INSTR_CREATE_psignb(dc, d, s)   instr_create_1dst_2src((dc), OP_psignb, (d), (s), (d))
#define INSTR_CREATE_psignw(dc, d, s)   instr_create_1dst_2src((dc), OP_psignw, (d), (s), (d))
#define INSTR_CREATE_psignd(dc, d, s)   instr_create_1dst_2src((dc), OP_psignd, (d), (s), (d))
#define INSTR_CREATE_pmulhrsw(dc, d, s)   instr_create_1dst_2src((dc), OP_pmulhrsw, (d), (s), (d))
#define INSTR_CREATE_pabsb(dc, d, s)   instr_create_1dst_2src((dc), OP_pabsb, (d), (s), (d))
#define INSTR_CREATE_pabsw(dc, d, s)   instr_create_1dst_2src((dc), OP_pabsw, (d), (s), (d))
#define INSTR_CREATE_pabsd(dc, d, s)   instr_create_1dst_2src((dc), OP_pabsd, (d), (s), (d))
#define INSTR_CREATE_pblendvb(dc, d, s)   instr_create_1dst_2src((dc), OP_pblendvb, (d), (s), opnd_create_reg(REG_XMM0))
#define INSTR_CREATE_blendvps(dc, d, s)   instr_create_1dst_2src((dc), OP_blendvps, (d), (s), opnd_create_reg(REG_XMM0))
#define INSTR_CREATE_blendvpd(dc, d, s)   instr_create_1dst_2src((dc), OP_blendvpd, (d), (s), opnd_create_reg(REG_XMM0))
#define INSTR_CREATE_crc32(dc, d, s)   instr_create_1dst_2src((dc), OP_crc32, (d), (s), (d))
#define INSTR_CREATE_packusdw(dc, d, s)   instr_create_1dst_2src((dc), OP_packusdw, (d), (s), (d))
#define INSTR_CREATE_pcmpeqq(dc, d, s)   instr_create_1dst_2src((dc), OP_pcmpeqq, (d), (s), (d))
#define INSTR_CREATE_pcmpgtq(dc, d, s)   instr_create_1dst_2src((dc), OP_pcmpgtq, (d), (s), (d))
#define INSTR_CREATE_pminsb(dc, d, s)   instr_create_1dst_2src((dc), OP_pminsb, (d), (s), (d))
#define INSTR_CREATE_pminsd(dc, d, s)   instr_create_1dst_2src((dc), OP_pminsd, (d), (s), (d))
#define INSTR_CREATE_pminuw(dc, d, s)   instr_create_1dst_2src((dc), OP_pminuw, (d), (s), (d))
#define INSTR_CREATE_pminud(dc, d, s)   instr_create_1dst_2src((dc), OP_pminud, (d), (s), (d))
#define INSTR_CREATE_pmaxsb(dc, d, s)   instr_create_1dst_2src((dc), OP_pmaxsb, (d), (s), (d))
#define INSTR_CREATE_pmaxsd(dc, d, s)   instr_create_1dst_2src((dc), OP_pmaxsd, (d), (s), (d))
#define INSTR_CREATE_pmaxuw(dc, d, s)   instr_create_1dst_2src((dc), OP_pmaxuw, (d), (s), (d))
#define INSTR_CREATE_pmaxud(dc, d, s)   instr_create_1dst_2src((dc), OP_pmaxud, (d), (s), (d))
#define INSTR_CREATE_pmuldq(dc, d, s)   instr_create_1dst_2src((dc), OP_pmuldq, (d), (s), (d))
#define INSTR_CREATE_pmulld(dc, d, s)   instr_create_1dst_2src((dc), OP_pmulld, (d), (s), (d))
1 destination, 1 explicit register-or-immediate source


#define INSTR_CREATE_bts(dc, d, ri)   instr_create_1dst_2src((dc), OP_bts, (d), (ri), (d))
#define INSTR_CREATE_btr(dc, d, ri)   instr_create_1dst_2src((dc), OP_btr, (d), (ri), (d))
#define INSTR_CREATE_btc(dc, d, ri)   instr_create_1dst_2src((dc), OP_btc, (d), (ri), (d))
1 implicit destination, 1 explicit source


#define INSTR_CREATE_imul_1(dc, s)   instr_create_1dst_2src((dc), OP_imul, opnd_create_reg(REG_AX), (s), opnd_create_reg(REG_AL))
#define INSTR_CREATE_imul_4(dc, s)
#define INSTR_CREATE_mul_1(dc, s)   instr_create_1dst_2src((dc), OP_mul, opnd_create_reg(REG_AX), (s), opnd_create_reg(REG_AL))
#define INSTR_CREATE_mul_4(dc, s)
#define INSTR_CREATE_div_1(dc, s)   instr_create_2dst_2src((dc), OP_div, opnd_create_reg(REG_AH), opnd_create_reg(REG_AL), (s), opnd_create_reg(REG_AX))
#define INSTR_CREATE_div_4(dc, s)
#define INSTR_CREATE_idiv_1(dc, s)   instr_create_2dst_2src((dc), OP_idiv, opnd_create_reg(REG_AH), opnd_create_reg(REG_AL), (s), opnd_create_reg(REG_AX))
#define INSTR_CREATE_idiv_4(dc, s)
1 destination, 1 explicit source that is cl, an immediate, or a constant


#define INSTR_CREATE_rol(dc, d, ri)   instr_create_1dst_2src((dc), OP_rol, (d), (ri), (d))
#define INSTR_CREATE_ror(dc, d, ri)   instr_create_1dst_2src((dc), OP_ror, (d), (ri), (d))
#define INSTR_CREATE_rcl(dc, d, ri)   instr_create_1dst_2src((dc), OP_rcl, (d), (ri), (d))
#define INSTR_CREATE_rcr(dc, d, ri)   instr_create_1dst_2src((dc), OP_rcr, (d), (ri), (d))
#define INSTR_CREATE_shl(dc, d, ri)   instr_create_1dst_2src((dc), OP_shl, (d), (ri), (d))
#define INSTR_CREATE_shr(dc, d, ri)   instr_create_1dst_2src((dc), OP_shr, (d), (ri), (d))
#define INSTR_CREATE_sar(dc, d, ri)   instr_create_1dst_2src((dc), OP_sar, (d), (ri), (d))
1 implicit destination, 2 explicit sources


#define INSTR_CREATE_maskmovq(dc, s1, s2)
#define INSTR_CREATE_maskmovdqu(dc, s1, s2)
Floating-point with explicit destination and explicit mem-or-fp-reg source


#define INSTR_CREATE_fadd(dc, f, s)   instr_create_1dst_2src((dc), OP_fadd, (f), (s), (f))
#define INSTR_CREATE_fmul(dc, f, s)   instr_create_1dst_2src((dc), OP_fmul, (f), (s), (f))
#define INSTR_CREATE_fdiv(dc, f, s)   instr_create_1dst_2src((dc), OP_fdiv, (f), (s), (f))
#define INSTR_CREATE_fdivr(dc, f, s)   instr_create_1dst_2src((dc), OP_fdivr, (f), (s), (f))
#define INSTR_CREATE_fsub(dc, f, s)   instr_create_1dst_2src((dc), OP_fsub, (f), (s), (f))
#define INSTR_CREATE_fsubr(dc, f, s)   instr_create_1dst_2src((dc), OP_fsubr, (f), (s), (f))
Floating-point with explicit destination and implicit source


#define INSTR_CREATE_faddp(dc, f)   instr_create_1dst_2src((dc), OP_faddp, (f), opnd_create_reg(REG_ST0), (f))
#define INSTR_CREATE_fmulp(dc, f)   instr_create_1dst_2src((dc), OP_fmulp, (f), opnd_create_reg(REG_ST0), (f))
#define INSTR_CREATE_fdivp(dc, f)   instr_create_1dst_2src((dc), OP_fdivp, (f), opnd_create_reg(REG_ST0), (f))
#define INSTR_CREATE_fdivrp(dc, f)   instr_create_1dst_2src((dc), OP_fdivrp, (f), opnd_create_reg(REG_ST0), (f))
#define INSTR_CREATE_fsubp(dc, f)   instr_create_1dst_2src((dc), OP_fsubp, (f), opnd_create_reg(REG_ST0), (f))
#define INSTR_CREATE_fsubrp(dc, f)   instr_create_1dst_2src((dc), OP_fsubrp, (f), opnd_create_reg(REG_ST0), (f))
Floating-point with implicit destination and explicit memory source


#define INSTR_CREATE_fiadd(dc, m)   instr_create_1dst_2src((dc), OP_fiadd, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fimul(dc, m)   instr_create_1dst_2src((dc), OP_fimul, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fidiv(dc, m)   instr_create_1dst_2src((dc), OP_fidiv, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fidivr(dc, m)   instr_create_1dst_2src((dc), OP_fidivr, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fisub(dc, m)   instr_create_1dst_2src((dc), OP_fisub, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_fisubr(dc, m)   instr_create_1dst_2src((dc), OP_fisubr, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_ficom(dc, m)   instr_create_1dst_2src((dc), OP_ficom, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0))
#define INSTR_CREATE_ficomp(dc, m)   instr_create_1dst_2src((dc), OP_ficomp, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0))
1 implicit destination, 2 sources: 1 explicit, 1 implicit


#define INSTR_CREATE_aam(dc, i)   instr_create_1dst_2src((dc), OP_aam, opnd_create_reg(REG_AX), (i), opnd_create_reg(REG_AX))
#define INSTR_CREATE_aad(dc, i)   instr_create_1dst_2src((dc), OP_aad, opnd_create_reg(REG_AX), (i), opnd_create_reg(REG_AX))
Loop instructions


#define INSTR_CREATE_loopne(dc, t)   instr_create_1dst_2src((dc), OP_loopne, opnd_create_reg(REG_XCX), (t), opnd_create_reg(REG_XCX))
#define INSTR_CREATE_loope(dc, t)   instr_create_1dst_2src((dc), OP_loope, opnd_create_reg(REG_XCX), (t), opnd_create_reg(REG_XCX))
#define INSTR_CREATE_loop(dc, t)   instr_create_1dst_2src((dc), OP_loop, opnd_create_reg(REG_XCX), (t), opnd_create_reg(REG_XCX))
1 implicit destination, 2 implicit sources


#define INSTR_CREATE_popf(dc)
#define INSTR_CREATE_ret(dc)
#define INSTR_CREATE_ret_far(dc)
#define INSTR_CREATE_iret(dc)
1 destination, 3 sources: 1 implicit


#define INSTR_CREATE_shld(dc, d, s, ri)   instr_create_1dst_3src((dc), OP_shld, (d), (s), (ri), (d))
#define INSTR_CREATE_shrd(dc, d, s, ri)   instr_create_1dst_3src((dc), OP_shrd, (d), (s), (ri), (d))
1 explicit destination, 2 explicit sources


#define INSTR_CREATE_shufps(dc, d, s, i)   instr_create_1dst_3src((dc), OP_shufps, (d), (s), (i), (d))
#define INSTR_CREATE_shufpd(dc, d, s, i)   instr_create_1dst_3src((dc), OP_shufpd, (d), (s), (i), (d))
#define INSTR_CREATE_cmpps(dc, d, s, i)   instr_create_1dst_3src((dc), OP_cmpps, (d), (s), (i), (d))
#define INSTR_CREATE_cmpss(dc, d, s, i)   instr_create_1dst_3src((dc), OP_cmpss, (d), (s), (i), (d))
#define INSTR_CREATE_cmppd(dc, d, s, i)   instr_create_1dst_3src((dc), OP_cmppd, (d), (s), (i), (d))
#define INSTR_CREATE_cmpsd(dc, d, s, i)   instr_create_1dst_3src((dc), OP_cmpsd, (d), (s), (i), (d))
#define INSTR_CREATE_palignr(dc, d, s, i)   instr_create_1dst_3src((dc), OP_palignr, (d), (s), (i), (d))
#define INSTR_CREATE_dpps(dc, d, s, i)   instr_create_1dst_3src((dc), OP_dpps, (d), (s), (i), (d))
#define INSTR_CREATE_dppd(dc, d, s, i)   instr_create_1dst_3src((dc), OP_dppd, (d), (s), (i), (d))
#define INSTR_CREATE_mpsadbw(dc, d, s, i)   instr_create_1dst_3src((dc), OP_mpsadbw, (d), (s), (i), (d))
1 implicit destination, 3 sources


#define INSTR_CREATE_pcmpistrm(dc, s1, s2, i)   instr_create_1dst_3src((dc), OP_pcmpistrm, opnd_create_reg(REG_XMM0), (s1), (s2), (i))
#define INSTR_CREATE_pcmpistri(dc, s1, s2, i)   instr_create_1dst_3src((dc), OP_pcmpistri, opnd_create_reg(REG_ECX), (s1), (s2), (i))
1 implicit destination, 3 sources: 2 implicit


#define INSTR_CREATE_ret_imm(dc, i)
#define INSTR_CREATE_ret_far_imm(dc, i)
1 implicit destination, 5 sources: 2 implicit


#define INSTR_CREATE_pcmpestrm(dc, s1, s2, i)
#define INSTR_CREATE_pcmpestri(dc, s1, s2, i)
2 destinations: 1 implicit, 1 source


#define INSTR_CREATE_lds(dc, d, s)   instr_create_2dst_1src((dc), OP_lds, (d), opnd_create_reg(SEG_DS), (s))
#define INSTR_CREATE_lss(dc, d, s)   instr_create_2dst_1src((dc), OP_lss, (d), opnd_create_reg(SEG_SS), (s))
#define INSTR_CREATE_les(dc, d, s)   instr_create_2dst_1src((dc), OP_les, (d), opnd_create_reg(SEG_ES), (s))
#define INSTR_CREATE_lfs(dc, d, s)   instr_create_2dst_1src((dc), OP_lfs, (d), opnd_create_reg(SEG_FS), (s))
#define INSTR_CREATE_lgs(dc, d, s)   instr_create_2dst_1src((dc), OP_lgs, (d), opnd_create_reg(SEG_GS), (s))
2 implicit destinations, 1 implicit source


#define INSTR_CREATE_pushf(dc)
#define INSTR_CREATE_int3(dc)
#define INSTR_CREATE_into(dc)
#define INSTR_CREATE_int1(dc)
#define INSTR_CREATE_rdmsr(dc)
#define INSTR_CREATE_rdpmc(dc)
2 destinations: 1 implicit, 2 sources: 1 implicit


#define INSTR_CREATE_xchg(dc, d, s)   instr_create_2dst_2src((dc), OP_xchg, (d), (s), (d), (s))
#define INSTR_CREATE_xadd(dc, d, s)   instr_create_2dst_2src((dc), OP_xadd, (d), (s), (d), (s))
String instructions


#define INSTR_CREATE_ins_1(dc)
#define INSTR_CREATE_ins_4(dc)
#define INSTR_CREATE_stos_1(dc)
#define INSTR_CREATE_stos_4(dc)
#define INSTR_CREATE_lods_1(dc)
#define INSTR_CREATE_lods_4(dc)
#define INSTR_CREATE_movs_1(dc)
#define INSTR_CREATE_movs_4(dc)
#define INSTR_CREATE_rep_ins_1(dc)
#define INSTR_CREATE_rep_ins_4(dc)
#define INSTR_CREATE_rep_stos_1(dc)
#define INSTR_CREATE_rep_stos_4(dc)
#define INSTR_CREATE_rep_lods_1(dc)
#define INSTR_CREATE_rep_lods_4(dc)
#define INSTR_CREATE_rep_movs_1(dc)
#define INSTR_CREATE_rep_movs_4(dc)
#define INSTR_CREATE_outs_1(dc)
#define INSTR_CREATE_outs_4(dc)
#define INSTR_CREATE_cmps_1(dc)
#define INSTR_CREATE_cmps_4(dc)
#define INSTR_CREATE_scas_1(dc)
#define INSTR_CREATE_scas_4(dc)
#define INSTR_CREATE_rep_outs_1(dc)
#define INSTR_CREATE_rep_outs_4(dc)
#define INSTR_CREATE_rep_cmps_1(dc)
#define INSTR_CREATE_rep_cmps_4(dc)
#define INSTR_CREATE_repne_cmps_1(dc)
#define INSTR_CREATE_repne_cmps_4(dc)
#define INSTR_CREATE_rep_scas_1(dc)
#define INSTR_CREATE_rep_scas_4(dc)
#define INSTR_CREATE_repne_scas_1(dc)
#define INSTR_CREATE_repne_scas_4(dc)
2 destinations: 1 implicit, 3 sources: 1 implicit


#define INSTR_CREATE_cmpxchg_1(dc, d, s)
#define INSTR_CREATE_cmpxchg_4(dc, d, s)
No destination, many implicit sources


#define INSTR_CREATE_pusha(dc)   instr_create_pusha((dc))
#define INSTR_CREATE_cpuid(dc)
Nops


#define INSTR_CREATE_nop1byte(dc)   INSTR_CREATE_nop(dc)
#define INSTR_CREATE_nop2byte(dc)   INSTR_CREATE_nop2byte_reg(dc, REG_XDI)
#define INSTR_CREATE_nop3byte(dc)   INSTR_CREATE_nop3byte_reg(dc, REG_XDI)

2-byte reg nops



#define INSTR_CREATE_nop3byte_reg(dc, reg)   INSTR_CREATE_lea(dc, opnd_create_reg(reg), OPND_CREATE_MEM_lea(reg, REG_NULL, 0, 0))


Detailed Description

Instruction creation convenience macros.

All macros assume default data and address sizes. For the most part these macros do not support building non-default address or data size versions; for that, simply duplicate the macro's body, replacing the SIZE and/or hardcoded registers with smaller versions (the IR does not support cs segments with non-default sizes where the default size requires instruction prefixes). For shrinking data sizes, see the instr_shrink_to_16_bits() routine.


Define Documentation

#define INSTR_CREATE_aaa ( dc   )     instr_create_1dst_1src((dc), OP_aaa, opnd_create_reg(REG_AX), opnd_create_reg(REG_AX))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_aad ( dc,
 )     instr_create_1dst_2src((dc), OP_aad, opnd_create_reg(REG_AX), (i), opnd_create_reg(REG_AX))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
i The opnd_t explicit source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_aam ( dc,
 )     instr_create_1dst_2src((dc), OP_aam, opnd_create_reg(REG_AX), (i), opnd_create_reg(REG_AX))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
i The opnd_t explicit source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_aas ( dc   )     instr_create_1dst_1src((dc), OP_aas, opnd_create_reg(REG_AX), opnd_create_reg(REG_AX))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_adc ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_adc, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_add ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_add, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_addpd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_addpd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_addps ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_addps, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_addsd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_addsd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_addss ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_addss, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_addsubpd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_addsubpd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_addsubps ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_addsubps, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_and ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_and, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_andnpd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_andnpd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_andnps ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_andnps, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_andpd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_andpd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_andps ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_andps, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_arpl ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_arpl, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_blendpd ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_blendpd, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_blendps ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_blendps, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_blendvpd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_blendvpd, (d), (s), opnd_create_reg(REG_XMM0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_blendvps ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_blendvps, (d), (s), opnd_create_reg(REG_XMM0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_bound ( dc,
s1,
s2   )     instr_create_0dst_2src((dc), OP_bound, (s1), (s2))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s1 The opnd_t first source operand for the instruction.
s2 The opnd_t second source operand for the instruction, which can be created with OPND_CREATE_MEM_bound() to get the appropriate operand size.

#define INSTR_CREATE_bsf ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_bsf, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_bsr ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_bsr, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_bswap ( dc,
 )     instr_create_1dst_1src((dc), OP_bswap, (d), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.

#define INSTR_CREATE_bt ( dc,
s,
ri   )     instr_create_0dst_2src((dc), OP_bt, (s), (ri))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t first source operand for the instruction.
ri The opnd_t second source operand for the instruction, which can be either a register or an immediate integer.

#define INSTR_CREATE_btc ( dc,
d,
ri   )     instr_create_1dst_2src((dc), OP_btc, (d), (ri), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
ri The opnd_t explicit source operand for the instruction, which can be a register (opnd_create_reg()) or an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_btr ( dc,
d,
ri   )     instr_create_1dst_2src((dc), OP_btr, (d), (ri), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
ri The opnd_t explicit source operand for the instruction, which can be a register (opnd_create_reg()) or an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_bts ( dc,
d,
ri   )     instr_create_1dst_2src((dc), OP_bts, (d), (ri), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
ri The opnd_t explicit source operand for the instruction, which can be a register (opnd_create_reg()) or an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_call ( dc,
 ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
t The opnd_t target operand for the instruction, which can be either a pc (opnd_create_pc()) or an instr_t (opnd_create_instr()).

#define INSTR_CREATE_call_far ( dc,
 ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
t The opnd_t target operand for the instruction, which should be a far pc operand created with opnd_create_far_pc().

#define INSTR_CREATE_call_far_ind ( dc,
 ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
t The opnd_t target operand for the instruction, which should be a far memory reference created with opnd_create_far_base_disp().

#define INSTR_CREATE_call_ind ( dc,
 ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
t The opnd_t target operand for the instruction, which should be a memory reference created with opnd_create_base_disp().

#define INSTR_CREATE_cdq ( dc   )     instr_create_1dst_1src((dc), OP_cdq, opnd_create_reg(REG_EDX), opnd_create_reg(REG_EAX))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_clc ( dc   )     instr_create_0dst_0src((dc), OP_clc)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_cld ( dc   )     instr_create_0dst_0src((dc), OP_cld)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_clflush ( dc,
 )     instr_create_0dst_1src((dc), OP_clflush, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction, which can be created with OPND_CREATE_MEM_clflush() to get the appropriate operand size.

#define INSTR_CREATE_cli ( dc   )     instr_create_0dst_0src((dc), OP_cli)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_clts ( dc   )     instr_create_0dst_0src((dc), OP_clts)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_cmc ( dc   )     instr_create_0dst_0src((dc), OP_cmc)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_cmovcc ( dc,
op,
d,
 )     instr_create_1dst_2src((dc), (op), (d), (s), (d))

Creats an instr_t for a conditional move instruction with the given opcode and destination operand.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
op The OP_xxx opcode for the instruction, which should be in the range [OP_cmovo, OP_cmovnle].
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cmp ( dc,
s1,
s2   )     instr_create_0dst_2src((dc), OP_cmp, (s1), (s2))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s1 The opnd_t first source operand for the instruction.
s2 The opnd_t second source operand for the instruction.

#define INSTR_CREATE_cmppd ( dc,
d,
s,
 )     instr_create_1dst_3src((dc), OP_cmppd, (d), (s), (i), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_cmpps ( dc,
d,
s,
 )     instr_create_1dst_3src((dc), OP_cmpps, (d), (s), (i), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_cmps_1 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_cmps_4 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_cmpsd ( dc,
d,
s,
 )     instr_create_1dst_3src((dc), OP_cmpsd, (d), (s), (i), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_cmpss ( dc,
d,
s,
 )     instr_create_1dst_3src((dc), OP_cmpss, (d), (s), (i), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_cmpxchg8b ( dc,
 ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.

#define INSTR_CREATE_cmpxchg_1 ( dc,
d,
 ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cmpxchg_4 ( dc,
d,
 ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_comisd ( dc,
s1,
s2   )     instr_create_0dst_2src((dc), OP_comisd, (s1), (s2))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s1 The opnd_t first source operand for the instruction.
s2 The opnd_t second source operand for the instruction.

#define INSTR_CREATE_comiss ( dc,
s1,
s2   )     instr_create_0dst_2src((dc), OP_comiss, (s1), (s2))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s1 The opnd_t first source operand for the instruction.
s2 The opnd_t second source operand for the instruction.

#define INSTR_CREATE_cpuid ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_crc32 ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_crc32, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvtdq2pd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvtdq2pd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvtdq2ps ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvtdq2ps, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvtpd2dq ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvtpd2dq, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvtpd2pi ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvtpd2pi, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvtpd2ps ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvtpd2ps, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvtpi2pd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvtpi2pd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvtpi2ps ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvtpi2ps, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvtps2dq ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvtps2dq, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvtps2pd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvtps2pd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvtps2pi ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvtps2pi, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvtsd2si ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvtsd2si, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvtsd2ss ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvtsd2ss, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvtsi2sd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvtsi2sd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvtsi2ss ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvtsi2ss, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvtss2sd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvtss2sd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvtss2si ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvtss2si, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvttpd2dq ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvttpd2dq, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvttpd2pi ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvttpd2pi, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvttps2dq ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvttps2dq, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvttps2pi ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvttps2pi, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvttsd2si ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvttsd2si, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cvttss2si ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_cvttss2si, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_cwde ( dc   )     instr_create_1dst_1src((dc), OP_cwde, opnd_create_reg(REG_EAX), opnd_create_reg(REG_AX))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_daa ( dc   )     instr_create_1dst_1src((dc), OP_daa, opnd_create_reg(REG_AL), opnd_create_reg(REG_AL))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_das ( dc   )     instr_create_1dst_1src((dc), OP_das, opnd_create_reg(REG_AL), opnd_create_reg(REG_AL))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_dec ( dc,
 )     instr_create_1dst_1src((dc), OP_dec, (d), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.

#define INSTR_CREATE_div_1 ( dc,
 )     instr_create_2dst_2src((dc), OP_div, opnd_create_reg(REG_AH), opnd_create_reg(REG_AL), (s), opnd_create_reg(REG_AX))

This INSTR_CREATE_xxx, INSTR_CREATE_xxx_1, or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_div_4 ( dc,
 ) 

Value:

This INSTR_CREATE_xxx, INSTR_CREATE_xxx_1, or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_divpd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_divpd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_divps ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_divps, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_divsd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_divsd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_divss ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_divss, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_dppd ( dc,
d,
s,
 )     instr_create_1dst_3src((dc), OP_dppd, (d), (s), (i), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_dpps ( dc,
d,
s,
 )     instr_create_1dst_3src((dc), OP_dpps, (d), (s), (i), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_emms ( dc   )     instr_create_0dst_0src((dc), OP_emms)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_enter ( dc,
i16,
i8   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
i16 The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()) of OPSZ_2.
i8 The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()) of OPSZ_1.

#define INSTR_CREATE_extractps ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_extractps, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_extrq ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_extrq, (d), (r))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
r The opnd_t explicit source operand for the instruction, which must be an xmm register (opnd_create_reg()).

#define INSTR_CREATE_extrq_imm ( dc,
d,
i1,
i2   )     instr_create_1dst_2src((dc), OP_extrq, (d), (i1), (i2))

This INSTR_CREATE_xxx_imm macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. The _imm suffix distinguishes between alternative forms of the same opcode: this form takes explicit immediates.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
i1 The opnd_t explicit first source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).
i2 The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_f2xm1 ( dc   )     instr_create_1dst_1src((dc), OP_f2xm1, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fabs ( dc   )     instr_create_1dst_1src((dc), OP_fabs, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fadd ( dc,
f,
 )     instr_create_1dst_2src((dc), OP_fadd, (f), (s), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given operands, automatically supplying any further implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t destination (and implicit source) operand for the instruction, which must be a floating point register (opnd_create_reg()).
s The opnd_t source (and non-destination) operand for the instruction, which must be one of the following:
  1. A floating point register (opnd_create_reg()).
  2. A memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()), in which case the destination f must be REG_ST0.

#define INSTR_CREATE_faddp ( dc,
 )     instr_create_1dst_2src((dc), OP_faddp, (f), opnd_create_reg(REG_ST0), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit register operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t explicit destination + source operand for the instruction, which must be a floating point register (opnd_create_reg()).

#define INSTR_CREATE_fbld ( dc,
 )     instr_create_1dst_1src((dc), OP_fbld, opnd_create_reg(REG_ST0), (m))

This INSTR_CREATE_xxx_mem macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_fbstp ( dc,
 )     instr_create_1dst_1src((dc), OP_fbstp, (m), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx_mem macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit destination operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_fchs ( dc   )     instr_create_1dst_1src((dc), OP_fchs, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fcmovcc ( dc,
op,
 )     instr_create_1dst_1src((dc), (op), opnd_create_reg(REG_ST0), (f))

Creats an instr_t for a conditional move instruction with the given opcode and destination operand.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
op The OP_xxx opcode for the instruction, which should be in the range [OP_fcmovb, OP_fcmovnu], excluding OP_fucompp.
f The opnd_t explicit source operand for the instruction, which must be a floating point register (opnd_create_reg()).

#define INSTR_CREATE_fcom ( dc,
 )     instr_create_0dst_2src((dc), OP_fcom, (s), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction, which must be one of the following:
  1. A floating point register (opnd_create_reg()).
  2. A memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). The other (implicit) source operand is REG_ST0.

#define INSTR_CREATE_fcomi ( dc,
 )     instr_create_0dst_2src((dc), OP_fcomi, opnd_create_reg(REG_ST0), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t explicit source operand for the instruction, which must be a floating point register (opnd_create_reg()). The other (implicit) source operand is REG_ST0.

#define INSTR_CREATE_fcomip ( dc,
 )     instr_create_0dst_2src((dc), OP_fcomip, opnd_create_reg(REG_ST0), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t explicit source operand for the instruction, which must be a floating point register (opnd_create_reg()). The other (implicit) source operand is REG_ST0.

#define INSTR_CREATE_fcomp ( dc,
 )     instr_create_0dst_2src((dc), OP_fcomp, (s), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction, which must be one of the following:
  1. A floating point register (opnd_create_reg()).
  2. A memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). The other (implicit) source operand is REG_ST0.

#define INSTR_CREATE_fcompp ( dc   )     instr_create_0dst_2src((dc), OP_fcompp, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fcos ( dc   )     instr_create_1dst_1src((dc), OP_fcos, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fdecstp ( dc   )     instr_create_0dst_0src((dc), OP_fdecstp)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fdiv ( dc,
f,
 )     instr_create_1dst_2src((dc), OP_fdiv, (f), (s), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given operands, automatically supplying any further implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t destination (and implicit source) operand for the instruction, which must be a floating point register (opnd_create_reg()).
s The opnd_t source (and non-destination) operand for the instruction, which must be one of the following:
  1. A floating point register (opnd_create_reg()).
  2. A memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()), in which case the destination f must be REG_ST0.

#define INSTR_CREATE_fdivp ( dc,
 )     instr_create_1dst_2src((dc), OP_fdivp, (f), opnd_create_reg(REG_ST0), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit register operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t explicit destination + source operand for the instruction, which must be a floating point register (opnd_create_reg()).

#define INSTR_CREATE_fdivr ( dc,
f,
 )     instr_create_1dst_2src((dc), OP_fdivr, (f), (s), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given operands, automatically supplying any further implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t destination (and implicit source) operand for the instruction, which must be a floating point register (opnd_create_reg()).
s The opnd_t source (and non-destination) operand for the instruction, which must be one of the following:
  1. A floating point register (opnd_create_reg()).
  2. A memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()), in which case the destination f must be REG_ST0.

#define INSTR_CREATE_fdivrp ( dc,
 )     instr_create_1dst_2src((dc), OP_fdivrp, (f), opnd_create_reg(REG_ST0), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit register operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t explicit destination + source operand for the instruction, which must be a floating point register (opnd_create_reg()).

#define INSTR_CREATE_femms ( dc   )     instr_create_0dst_0src((dc), OP_femms)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_ffree ( dc,
 )     instr_create_1dst_0src((dc), OP_ffree, (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t explicit destination operand for the instruction, which must be a floating point register (opnd_create_reg()).

#define INSTR_CREATE_fiadd ( dc,
 )     instr_create_1dst_2src((dc), OP_fiadd, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_ficom ( dc,
 )     instr_create_1dst_2src((dc), OP_ficom, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_ficomp ( dc,
 )     instr_create_1dst_2src((dc), OP_ficomp, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_fidiv ( dc,
 )     instr_create_1dst_2src((dc), OP_fidiv, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_fidivr ( dc,
 )     instr_create_1dst_2src((dc), OP_fidivr, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_fild ( dc,
 )     instr_create_1dst_1src((dc), OP_fild, opnd_create_reg(REG_ST0), (m))

This INSTR_CREATE_xxx_mem macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_fimul ( dc,
 )     instr_create_1dst_2src((dc), OP_fimul, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_fincstp ( dc   )     instr_create_0dst_0src((dc), OP_fincstp)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fist ( dc,
 )     instr_create_1dst_1src((dc), OP_fist, (m), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx_mem macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit destination operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_fistp ( dc,
 )     instr_create_1dst_1src((dc), OP_fistp, (m), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx_mem macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit destination operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_fisttp ( dc,
 )     instr_create_1dst_1src((dc), OP_fisttp, (m), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx_mem macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit destination operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_fisub ( dc,
 )     instr_create_1dst_2src((dc), OP_fisub, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_fisubr ( dc,
 )     instr_create_1dst_2src((dc), OP_fisubr, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_fld ( dc,
 )     instr_create_1dst_1src((dc), OP_fld, opnd_create_reg(REG_ST0), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction, which must be one of the following:
  1. A floating point register (opnd_create_reg()).
  2. A memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_fld1 ( dc   )     instr_create_1dst_1src((dc), OP_fld1, opnd_create_reg(REG_ST0), opnd_create_immed_float(1.0f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fldcw ( dc,
 )     instr_create_0dst_1src((dc), OP_fldcw, (m))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit destination operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_fldenv ( dc,
 )     instr_create_0dst_1src((dc), OP_fldenv, (m))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit destination operand for the instruction, which can be created with OPND_CREATE_MEM_fldenv() to get the appropriate operand size.

#define INSTR_CREATE_fldl2e ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fldl2t ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fldlg2 ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fldln2 ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fldpi ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fldz ( dc   )     instr_create_1dst_1src((dc), OP_fldz, opnd_create_reg(REG_ST0), opnd_create_immed_float(0.0f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fmul ( dc,
f,
 )     instr_create_1dst_2src((dc), OP_fmul, (f), (s), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given operands, automatically supplying any further implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t destination (and implicit source) operand for the instruction, which must be a floating point register (opnd_create_reg()).
s The opnd_t source (and non-destination) operand for the instruction, which must be one of the following:
  1. A floating point register (opnd_create_reg()).
  2. A memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()), in which case the destination f must be REG_ST0.

#define INSTR_CREATE_fmulp ( dc,
 )     instr_create_1dst_2src((dc), OP_fmulp, (f), opnd_create_reg(REG_ST0), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit register operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t explicit destination + source operand for the instruction, which must be a floating point register (opnd_create_reg()).

#define INSTR_CREATE_fnclex ( dc   )     instr_create_0dst_0src((dc), OP_fnclex)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fninit ( dc   )     instr_create_0dst_0src((dc), OP_fninit)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fnop ( dc   )     instr_create_0dst_0src((dc), OP_fnop)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fnsave ( dc,
 )     instr_create_1dst_0src((dc), OP_fnsave, (m))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit destination operand for the instruction, which can be created with OPND_CREATE_MEM_fnsave() to get the appropriate operand size.

#define INSTR_CREATE_fnstcw ( dc,
 )     instr_create_1dst_0src((dc), OP_fnstcw, (m))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit destination operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit destination operand for the instruction, which can be created with OPND_CREATE_MEM_fnstenv() to get the appropriate operand size.

#define INSTR_CREATE_fnstenv ( dc,
 )     instr_create_1dst_0src((dc), OP_fnstenv, (m))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit destination operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit destination operand for the instruction, which can be created with OPND_CREATE_MEM_fnstenv() to get the appropriate operand size.

#define INSTR_CREATE_fnstsw ( dc,
 )     instr_create_1dst_0src((dc), OP_fnstsw, (m))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit destination operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit destination operand for the instruction, which can be created with OPND_CREATE_MEM_fnstenv() to get the appropriate operand size.

#define INSTR_CREATE_fpatan ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fprem ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fprem1 ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fptan ( dc   )     instr_create_1dst_1src((dc), OP_fptan, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_frndint ( dc   )     instr_create_1dst_1src((dc), OP_frndint, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_frstor ( dc,
 )     instr_create_0dst_1src((dc), OP_frstor, (m))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
m The opnd_t explicit destination operand for the instruction, which can be created with OPND_CREATE_MEM_frstor() to get the appropriate operand size.

#define INSTR_CREATE_fscale ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fsin ( dc   )     instr_create_1dst_1src((dc), OP_fsin, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fsincos ( dc   )     instr_create_1dst_1src((dc), OP_fsincos, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fsqrt ( dc   )     instr_create_1dst_1src((dc), OP_fsqrt, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fst ( dc,
 )     instr_create_1dst_1src((dc), OP_fst, (d), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction, which must be one of the following:
  1. A floating point register (opnd_create_reg()).
  2. A memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_fstp ( dc,
 )     instr_create_1dst_1src((dc), OP_fstp, (d), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction, which must be one of the following:
  1. A floating point register (opnd_create_reg()).
  2. A memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()).

#define INSTR_CREATE_fsub ( dc,
f,
 )     instr_create_1dst_2src((dc), OP_fsub, (f), (s), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given operands, automatically supplying any further implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t destination (and implicit source) operand for the instruction, which must be a floating point register (opnd_create_reg()).
s The opnd_t source (and non-destination) operand for the instruction, which must be one of the following:
  1. A floating point register (opnd_create_reg()).
  2. A memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()), in which case the destination f must be REG_ST0.

#define INSTR_CREATE_fsubp ( dc,
 )     instr_create_1dst_2src((dc), OP_fsubp, (f), opnd_create_reg(REG_ST0), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit register operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t explicit destination + source operand for the instruction, which must be a floating point register (opnd_create_reg()).

#define INSTR_CREATE_fsubr ( dc,
f,
 )     instr_create_1dst_2src((dc), OP_fsubr, (f), (s), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given operands, automatically supplying any further implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t destination (and implicit source) operand for the instruction, which must be a floating point register (opnd_create_reg()).
s The opnd_t source (and non-destination) operand for the instruction, which must be one of the following:
  1. A floating point register (opnd_create_reg()).
  2. A memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()), in which case the destination f must be REG_ST0.

#define INSTR_CREATE_fsubrp ( dc,
 )     instr_create_1dst_2src((dc), OP_fsubrp, (f), opnd_create_reg(REG_ST0), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit register operand, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t explicit destination + source operand for the instruction, which must be a floating point register (opnd_create_reg()).

#define INSTR_CREATE_ftst ( dc   )     instr_create_1dst_1src((dc), OP_ftst, opnd_create_reg(REG_ST0), opnd_create_immed_float(0.0f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fucom ( dc,
 )     instr_create_0dst_2src((dc), OP_fucom, opnd_create_reg(REG_ST0), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t explicit source operand for the instruction, which must be a floating point register (opnd_create_reg()). The other (implicit) source operand is REG_ST0.

#define INSTR_CREATE_fucomi ( dc,
 )     instr_create_0dst_2src((dc), OP_fucomi, opnd_create_reg(REG_ST0), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t explicit source operand for the instruction, which must be a floating point register (opnd_create_reg()). The other (implicit) source operand is REG_ST0.

#define INSTR_CREATE_fucomip ( dc,
 )     instr_create_0dst_2src((dc), OP_fucomip, opnd_create_reg(REG_ST0), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t explicit source operand for the instruction, which must be a floating point register (opnd_create_reg()). The other (implicit) source operand is REG_ST0.

#define INSTR_CREATE_fucomp ( dc,
 )     instr_create_0dst_2src((dc), OP_fucomp, opnd_create_reg(REG_ST0), (f))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t explicit source operand for the instruction, which must be a floating point register (opnd_create_reg()). The other (implicit) source operand is REG_ST0.

#define INSTR_CREATE_fucompp ( dc   )     instr_create_0dst_2src((dc), OP_fucompp, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fwait ( dc   )     instr_create_0dst_0src((dc), OP_fwait)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fxam ( dc   )     instr_create_0dst_1src((dc), OP_fxam, opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fxch ( dc,
 ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit register operand, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
f The opnd_t explicit source operand for the instruction, which must be a floating point register (opnd_create_reg()).

#define INSTR_CREATE_fxrstor ( dc,
 )     instr_create_0dst_1src((dc), OP_fxrstor, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction, which can be created with OPND_CREATE_MEM_fxrstor() to get the appropriate operand size.

#define INSTR_CREATE_fxsave ( dc,
 )     instr_create_1dst_0src((dc), OP_fxsave, (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction, which can be created with OPND_CREATE_MEM_fxsave() to get the appropriate operand size.

#define INSTR_CREATE_fxtract ( dc   )     instr_create_1dst_1src((dc), OP_fxtract, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fyl2x ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_fyl2xp1 ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_haddpd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_haddpd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_haddps ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_haddps, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_hlt ( dc   )     instr_create_0dst_0src((dc), OP_hlt)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_hsubpd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_hsubpd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_hsubps ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_hsubps, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_idiv_1 ( dc,
 )     instr_create_2dst_2src((dc), OP_idiv, opnd_create_reg(REG_AH), opnd_create_reg(REG_AL), (s), opnd_create_reg(REG_AX))

This INSTR_CREATE_xxx, INSTR_CREATE_xxx_1, or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_idiv_4 ( dc,
 ) 

Value:

This INSTR_CREATE_xxx, INSTR_CREATE_xxx_1, or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_imul ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_imul, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_imul_1 ( dc,
 )     instr_create_1dst_2src((dc), OP_imul, opnd_create_reg(REG_AX), (s), opnd_create_reg(REG_AL))

This INSTR_CREATE_xxx, INSTR_CREATE_xxx_1, or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_imul_4 ( dc,
 ) 

Value:

This INSTR_CREATE_xxx, INSTR_CREATE_xxx_1, or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_imul_imm ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_imul, (d), (s), (i))

This INSTR_CREATE_xxx_imm macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. The _imm suffix distinguishes between alternative forms of the same opcode: this form takes an explicit immediate.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_in_1 ( dc   )     instr_create_1dst_1src((dc), OP_in, opnd_create_reg(REG_AL), opnd_create_reg(REG_DX))

Creates an instr_t for an OP_in instruction with a source of al (INSTR_CREATE_in_1()) or eax (INSTR_CREATE_in_4()) and dx.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_in_1_imm ( dc,
 )     instr_create_1dst_1src((dc), OP_in, opnd_create_reg(REG_AL), (i))

Creates an instr_t for an OP_in instruction with a source of al (INSTR_CREATE_in_1_imm()) or eax (INSTR_CREATE_in_4_imm()) and an immediate.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
i The opnd_t explicit source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_in_4 ( dc   )     instr_create_1dst_1src((dc), OP_in, opnd_create_reg(REG_EAX), opnd_create_reg(REG_DX))

Creates an instr_t for an OP_in instruction with a source of al (INSTR_CREATE_in_1()) or eax (INSTR_CREATE_in_4()) and dx.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_in_4_imm ( dc,
 )     instr_create_1dst_1src((dc), OP_in, opnd_create_reg(REG_EAX), (i))

Creates an instr_t for an OP_in instruction with a source of al (INSTR_CREATE_in_1_imm()) or eax (INSTR_CREATE_in_4_imm()) and an immediate.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
i The opnd_t explicit source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_inc ( dc,
 )     instr_create_1dst_1src((dc), OP_inc, (d), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.

#define INSTR_CREATE_ins_1 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_ins_4 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_insertps ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_insertps, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_insertq ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_insertq, (d), (r))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
r The opnd_t explicit source operand for the instruction, which must be an xmm register (opnd_create_reg()).

#define INSTR_CREATE_insertq_imm ( dc,
d,
r,
i1,
i2   )     instr_create_1dst_3src((dc), OP_insertq, (d), (r), (i1), (i2))

This INSTR_CREATE_xxx_imm macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. The _imm suffix distinguishes between alternative forms of the same opcode: this form takes explicit immediates.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
r The opnd_t explicit first source operand for the instruction, which must be an xmm register (opnd_create_reg()).
i1 The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).
i2 The opnd_t explicit third source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_int ( dc,
 ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_int1 ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_int3 ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_into ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_invd ( dc   )     instr_create_0dst_0src((dc), OP_invd)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_invlpg ( dc,
 )     instr_create_0dst_1src((dc), OP_invlpg, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction, which can be created with OPND_CREATE_MEM_invlpg() to get the appropriate operand size.

#define INSTR_CREATE_iret ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_jcc ( dc,
op,
 )     instr_create_0dst_1src((dc), (op), (t))

Creates an instr_t for a conditional branch instruction with the given opcode and target operand.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
op The OP_xxx opcode for the conditional branch, which should be in the range [OP_jo, OP_jnle].
t The opnd_t target operand for the instruction, which can be either a pc (opnd_create_pc()) or an instr_t (opnd_create_instr()).

#define INSTR_CREATE_jcc_short ( dc,
op,
 )     instr_create_0dst_1src((dc), (op), (t))

Creates an instr_t for a short conditional branch instruction with the given opcode and target operand.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
op The OP_xxx opcode for the conditional branch, which should be in the range [OP_jo_short, OP_jnle_short].
t The opnd_t target operand for the instruction, which can be either a pc (opnd_create_pc()) or an instr_t (opnd_create_instr()). Be sure to ensure that the limited reach of this short branch will reach the target (a pc operand is not suitable for most uses unless you know precisely where this instruction will be encoded).

#define INSTR_CREATE_jcxz ( dc,
 )     instr_create_0dst_2src((dc), OP_jecxz, (t), opnd_create_reg(REG_CX))

Creates an instr_t for an OP_jecxz instruction that uses cx instead of ecx (there is no separate OP_jcxz).

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
t The opnd_t target operand for the instruction, which can be either a pc (opnd_create_pc()) or an instr_t (opnd_create_instr()).

#define INSTR_CREATE_jecxz ( dc,
 )     instr_create_0dst_2src((dc), OP_jecxz, (t), opnd_create_reg(REG_XCX))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
t The opnd_t target operand for the instruction, which can be either a pc (opnd_create_pc()) or an instr_t (opnd_create_instr()).

#define INSTR_CREATE_jmp ( dc,
 )     instr_create_0dst_1src((dc), OP_jmp, (t))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
t The opnd_t target operand for the instruction, which can be either a pc (opnd_create_pc()) or an instr_t (opnd_create_instr()).

#define INSTR_CREATE_jmp_far ( dc,
 )     instr_create_0dst_1src((dc), OP_jmp_far, (t))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
t The opnd_t target operand for the instruction, which should be a far pc operand created with opnd_create_far_pc().

#define INSTR_CREATE_jmp_far_ind ( dc,
 )     instr_create_0dst_1src((dc), OP_jmp_far_ind, (t))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
t The opnd_t target operand for the instruction, which should be a far memory reference created with opnd_create_far_base_disp().

#define INSTR_CREATE_jmp_ind ( dc,
 )     instr_create_0dst_1src((dc), OP_jmp_ind, (t))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
t The opnd_t target operand for the instruction, which should be a memory reference created with opnd_create_base_disp().

#define INSTR_CREATE_jmp_short ( dc,
 )     instr_create_0dst_1src((dc), OP_jmp_short, (t))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
t The opnd_t target operand for the instruction, which can be either a pc (opnd_create_pc()) or an instr_t (opnd_create_instr()).

#define INSTR_CREATE_label ( dc   )     instr_create_0dst_0src((dc), OP_LABEL)

Creates an instr_t with opcode OP_LABEL. An OP_LABEL instruction can be used as a jump or call instr_t target, and when emitted it will take no space in the resulting machine code.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_lahf ( dc   )     instr_create_1dst_0src((dc), OP_lahf, opnd_create_reg(REG_AH))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_lar ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_lar, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_lddqu ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_lddqu, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_ldmxcsr ( dc,
 )     instr_create_0dst_1src((dc), OP_ldmxcsr, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_lds ( dc,
d,
 )     instr_create_2dst_1src((dc), OP_lds, (d), opnd_create_reg(SEG_DS), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_lea ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_lea, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction, which can be created with OPND_CREATE_MEM_lea() to get the appropriate operand size.

#define INSTR_CREATE_les ( dc,
d,
 )     instr_create_2dst_1src((dc), OP_les, (d), opnd_create_reg(SEG_ES), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_lfence ( dc   )     instr_create_0dst_0src((dc), OP_lfence)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_lfs ( dc,
d,
 )     instr_create_2dst_1src((dc), OP_lfs, (d), opnd_create_reg(SEG_FS), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_lgdt ( dc,
 )     instr_create_0dst_1src((dc), OP_lgdt, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction, which can be created with OPND_CREATE_MEM_lgdt() to get the appropriate operand size.

#define INSTR_CREATE_lgs ( dc,
d,
 )     instr_create_2dst_1src((dc), OP_lgs, (d), opnd_create_reg(SEG_GS), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_lidt ( dc,
 )     instr_create_0dst_1src((dc), OP_lidt, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction, which can be created with OPND_CREATE_MEM_lidt() to get the appropriate operand size.

#define INSTR_CREATE_lldt ( dc,
 )     instr_create_0dst_1src((dc), OP_lldt, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_lmsw ( dc,
 )     instr_create_0dst_1src((dc), OP_lmsw, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_lods_1 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_lods_4 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_loop ( dc,
 )     instr_create_1dst_2src((dc), OP_loop, opnd_create_reg(REG_XCX), (t), opnd_create_reg(REG_XCX))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
t The opnd_t target operand for the instruction, which can be either a pc (opnd_create_pc()) or an instr_t (opnd_create_instr()).

#define INSTR_CREATE_loope ( dc,
 )     instr_create_1dst_2src((dc), OP_loope, opnd_create_reg(REG_XCX), (t), opnd_create_reg(REG_XCX))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
t The opnd_t target operand for the instruction, which can be either a pc (opnd_create_pc()) or an instr_t (opnd_create_instr()).

#define INSTR_CREATE_loopne ( dc,
 )     instr_create_1dst_2src((dc), OP_loopne, opnd_create_reg(REG_XCX), (t), opnd_create_reg(REG_XCX))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
t The opnd_t target operand for the instruction, which can be either a pc (opnd_create_pc()) or an instr_t (opnd_create_instr()).

#define INSTR_CREATE_lsl ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_lsl, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_lss ( dc,
d,
 )     instr_create_2dst_1src((dc), OP_lss, (d), opnd_create_reg(SEG_SS), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_ltr ( dc,
 )     instr_create_0dst_1src((dc), OP_ltr, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_lzcnt ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_lzcnt, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_maskmovdqu ( dc,
s1,
s2   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s1 The opnd_t first source operand for the instruction.
s2 The opnd_t second source operand for the instruction.

#define INSTR_CREATE_maskmovq ( dc,
s1,
s2   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s1 The opnd_t first source operand for the instruction.
s2 The opnd_t second source operand for the instruction.

#define INSTR_CREATE_maxpd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_maxpd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_maxps ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_maxps, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_maxsd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_maxsd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_maxss ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_maxss, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_mfence ( dc   )     instr_create_0dst_0src((dc), OP_mfence)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_minpd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_minpd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_minps ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_minps, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_minsd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_minsd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_minss ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_minss, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_monitor ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_mov_imm ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_mov_imm, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_mov_ld ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_mov_ld, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_mov_priv ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_mov_priv, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_mov_seg ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_mov_seg, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_mov_st ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_mov_st, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movapd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movapd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movaps ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movaps, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movddup ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movddup, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movdqa ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movdqa, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movdqu ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movdqu, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movhpd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movhpd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movhps ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movhps, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movlpd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movlpd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movlps ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movlps, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movmskpd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movmskpd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movmskps ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movmskps, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movntdq ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movntdq, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movntdqa ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movntdqa, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movnti ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movnti, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movntpd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movntpd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movntps ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movntps, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movntq ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movntq, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movntsd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movntsd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movntss ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movntss, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movq ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movq, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movs_1 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_movs_4 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_movsd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movsd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movshdup ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movshdup, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movsldup ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movsldup, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movss ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movss, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movsx ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movsx, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movsxd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movsxd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movupd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movupd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movups ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movups, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_movzx ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_movzx, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_mpsadbw ( dc,
d,
s,
 )     instr_create_1dst_3src((dc), OP_mpsadbw, (d), (s), (i), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_mul_1 ( dc,
 )     instr_create_1dst_2src((dc), OP_mul, opnd_create_reg(REG_AX), (s), opnd_create_reg(REG_AL))

This INSTR_CREATE_xxx, INSTR_CREATE_xxx_1, or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_mul_4 ( dc,
 ) 

Value:

This INSTR_CREATE_xxx, INSTR_CREATE_xxx_1, or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_mulpd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_mulpd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_mulps ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_mulps, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_mulsd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_mulsd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_mulss ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_mulss, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_mwait ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_neg ( dc,
 )     instr_create_1dst_1src((dc), OP_neg, (d), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.

#define INSTR_CREATE_nop ( dc   )     instr_create_0dst_0src((dc), OP_nop)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_nop1byte ( dc   )     INSTR_CREATE_nop(dc)

Convenience routine for nop of certain size. We choose edi as working register for multibyte nops (seems least likely to impact performance: Microsoft uses it and DR used to steal it). Note that Intel now recommends a different set of multi-byte nops, but we stick with these as our tools (mainly windbg) don't understand the OP_nop_modrm encoding (though should work on PPro+).

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_nop2byte ( dc   )     INSTR_CREATE_nop2byte_reg(dc, REG_XDI)

Convenience routine for nop of certain size. We choose edi as working register for multibyte nops (seems least likely to impact performance: Microsoft uses it and DR used to steal it). Note that Intel now recommends a different set of multi-byte nops, but we stick with these as our tools (mainly windbg) don't understand the OP_nop_modrm encoding (though should work on PPro+).

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_nop3byte ( dc   )     INSTR_CREATE_nop3byte_reg(dc, REG_XDI)

Convenience routine for nop of certain size. We choose edi as working register for multibyte nops (seems least likely to impact performance: Microsoft uses it and DR used to steal it). Note that Intel now recommends a different set of multi-byte nops, but we stick with these as our tools (mainly windbg) don't understand the OP_nop_modrm encoding (though should work on PPro+).

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_nop3byte_reg ( dc,
reg   )     INSTR_CREATE_lea(dc, opnd_create_reg(reg), OPND_CREATE_MEM_lea(reg, REG_NULL, 0, 0))

Convenience routine for nop of certain size. Note that Intel now recommends a different set of multi-byte nops, but we stick with these as our tools (mainly windbg) don't understand the OP_nop_modrm encoding (though should work on PPro+). AMD recommends 0x66 0x66 ... 0x90 for older processors.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
reg A reg_id_t (NOT opnd_t) to use as source and destination. For 64-bit mode, use a 64-bit register, but NOT rbp or rsp for the 3-byte form.

#define INSTR_CREATE_nop_modrm ( dc,
 )     instr_create_0dst_1src((dc), OP_nop_modrm, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_not ( dc,
 )     instr_create_1dst_1src((dc), OP_not, (d), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.

#define INSTR_CREATE_or ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_or, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_orpd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_orpd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_orps ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_orps, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_out_1 ( dc   )     instr_create_0dst_2src((dc), OP_out, opnd_create_reg(REG_AL), opnd_create_reg(REG_DX))

Creates an instr_t for an OP_out instruction with a source of al (INSTR_CREATE_out_1()) or eax (INSTR_CREATE_out_4()) and dx.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_out_1_imm ( dc,
 )     instr_create_0dst_2src((dc), OP_out, (i), opnd_create_reg(REG_AL))

Creates an instr_t for an OP_out instruction with a source of al (INSTR_CREATE_out_1_imm()) or eax (INSTR_CREATE_out_4_imm()) and an immediate.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
i The opnd_t explicit source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_out_4 ( dc   )     instr_create_0dst_2src((dc), OP_out, opnd_create_reg(REG_EAX), opnd_create_reg(REG_DX))

Creates an instr_t for an OP_out instruction with a source of al (INSTR_CREATE_out_1()) or eax (INSTR_CREATE_out_4()) and dx.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_out_4_imm ( dc,
 )     instr_create_0dst_2src((dc), OP_out, (i), opnd_create_reg(REG_EAX))

Creates an instr_t for an OP_out instruction with a source of al (INSTR_CREATE_out_1_imm()) or eax (INSTR_CREATE_out_4_imm()) and an immediate.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
i The opnd_t explicit source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_outs_1 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_outs_4 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_pabsb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pabsb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pabsd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pabsd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pabsw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pabsw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_packssdw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_packssdw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_packsswb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_packsswb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_packusdw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_packusdw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_packuswb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_packuswb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_paddb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_paddb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_paddd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_paddd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_paddq ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_paddq, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_paddsb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_paddsb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_paddsw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_paddsw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_paddusb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_paddusb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_paddusw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_paddusw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_paddw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_paddw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_palignr ( dc,
d,
s,
 )     instr_create_1dst_3src((dc), OP_palignr, (d), (s), (i), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_pand ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pand, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pandn ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pandn, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pause ( dc   )     instr_create_0dst_0src((dc), OP_pause)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_pavgb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pavgb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pavgusb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pavgusb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pavgw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pavgw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pblendvb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pblendvb, (d), (s), opnd_create_reg(REG_XMM0))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pblendw ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_pblendw, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_pcmpeqb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pcmpeqb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pcmpeqd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pcmpeqd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pcmpeqq ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pcmpeqq, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pcmpeqw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pcmpeqw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pcmpestri ( dc,
s1,
s2,
 ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s1 The opnd_t explicit first source operand for the instruction.
s2 The opnd_t explicit second source operand for the instruction.
i The opnd_t explicit third source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_pcmpestrm ( dc,
s1,
s2,
 ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s1 The opnd_t explicit first source operand for the instruction.
s2 The opnd_t explicit second source operand for the instruction.
i The opnd_t explicit third source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_pcmpgtb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pcmpgtb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pcmpgtd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pcmpgtd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pcmpgtq ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pcmpgtq, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pcmpgtw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pcmpgtw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pcmpistri ( dc,
s1,
s2,
 )     instr_create_1dst_3src((dc), OP_pcmpistri, opnd_create_reg(REG_ECX), (s1), (s2), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s1 The opnd_t explicit first source operand for the instruction.
s2 The opnd_t explicit second source operand for the instruction.
i The opnd_t explicit third source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_pcmpistrm ( dc,
s1,
s2,
 )     instr_create_1dst_3src((dc), OP_pcmpistrm, opnd_create_reg(REG_XMM0), (s1), (s2), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s1 The opnd_t explicit first source operand for the instruction.
s2 The opnd_t explicit second source operand for the instruction.
i The opnd_t explicit third source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_pextrb ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_pextrb, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_pextrd ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_pextrd, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_pextrw ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_pextrw, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_pf2id ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pf2id, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pf2iw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pf2iw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfacc ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfacc, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfadd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfadd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfcmpeq ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfcmpeq, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfcmpge ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfcmpge, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfcmpgt ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfcmpgt, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfmax ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfmax, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfmin ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfmin, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfmul ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfmul, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfnacc ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfnacc, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfpnacc ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfpnacc, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfrcp ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfrcp, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfrcpit1 ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfrcpit1, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfrcpit2 ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfrcpit2, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfrsqit1 ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfrsqit1, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfrsqrt ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfrsqrt, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfsub ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfsub, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pfsubr ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pfsubr, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_phaddd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_phaddd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_phaddsw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_phaddsw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_phaddw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_phaddw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_phminposuw ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_phminposuw, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_phsubd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_phsubd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_phsubsw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_phsubsw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_phsubw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_phsubw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pi2fd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pi2fd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pi2fw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pi2fw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pinsrb ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_pinsrb, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_pinsrd ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_pinsrd, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_pinsrw ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_pinsrw, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_pmaddubsw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pmaddubsw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmaddwd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pmaddwd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmaxsb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pmaxsb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmaxsd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pmaxsd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmaxsw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pmaxsw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmaxub ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pmaxub, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmaxud ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pmaxud, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmaxuw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pmaxuw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pminsb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pminsb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pminsd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pminsd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pminsw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pminsw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pminub ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pminub, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pminud ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pminud, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pminuw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pminuw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmovmskb ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_pmovmskb, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmovsxbd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_pmovsxbd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmovsxbq ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_pmovsxbq, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmovsxbw ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_pmovsxbw, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmovsxdq ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_pmovsxdq, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmovsxdw ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_pmovsxdw, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmovsxwq ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_pmovsxwq, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmovzxbd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_pmovzxbd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmovzxbq ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_pmovzxbq, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmovzxbw ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_pmovzxbw, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmovzxdq ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_pmovzxdq, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmovzxdw ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_pmovzxdw, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmovzxwq ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_pmovzxwq, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmuldq ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pmuldq, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmulhrsw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pmulhrsw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmulhrw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pmulhrw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmulhuw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pmulhuw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmulhw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pmulhw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmulld ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pmulld, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmullw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pmullw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pmuludq ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pmuludq, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pop ( dc,
 ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.

#define INSTR_CREATE_popa ( dc   )     instr_create_popa((dc))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_popcnt ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_popcnt, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_popf ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_por ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_por, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_prefetch ( dc,
 )     instr_create_0dst_1src((dc), OP_prefetch, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction, which can be created with OPND_CREATE_MEM_prefetch() to get the appropriate operand size.

#define INSTR_CREATE_prefetchnta ( dc,
 )     instr_create_0dst_1src((dc), OP_prefetchnta, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction, which can be created with OPND_CREATE_MEM_prefetch() to get the appropriate operand size.

#define INSTR_CREATE_prefetcht0 ( dc,
 )     instr_create_0dst_1src((dc), OP_prefetcht0, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction, which can be created with OPND_CREATE_MEM_prefetch() to get the appropriate operand size.

#define INSTR_CREATE_prefetcht1 ( dc,
 )     instr_create_0dst_1src((dc), OP_prefetcht1, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction, which can be created with OPND_CREATE_MEM_prefetch() to get the appropriate operand size.

#define INSTR_CREATE_prefetcht2 ( dc,
 )     instr_create_0dst_1src((dc), OP_prefetcht2, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction, which can be created with OPND_CREATE_MEM_prefetch() to get the appropriate operand size.

#define INSTR_CREATE_prefetchw ( dc,
 )     instr_create_0dst_1src((dc), OP_prefetchw, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction, which can be created with OPND_CREATE_MEM_prefetch() to get the appropriate operand size.

#define INSTR_CREATE_psadbw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psadbw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pshufb ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_pshufb, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pshufd ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_pshufd, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_pshufhw ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_pshufhw, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_pshuflw ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_pshuflw, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_pshufw ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_pshufw, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_psignb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psignb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psignd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psignd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psignw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psignw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pslld ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pslld, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pslldq ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pslldq, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psllq ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psllq, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psllw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psllw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psrad ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psrad, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psraw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psraw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psrld ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psrld, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psrldq ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psrldq, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psrlq ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psrlq, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psrlw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psrlw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psubb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psubb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psubd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psubd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psubq ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psubq, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psubsb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psubsb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psubsw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psubsw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psubusb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psubusb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psubusw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psubusw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_psubw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_psubw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_pswapd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pswapd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_ptest ( dc,
s1,
s2   )     instr_create_0dst_2src((dc), OP_ptest, (s1), (s2))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s1 The opnd_t first source operand for the instruction.
s2 The opnd_t second source operand for the instruction.

#define INSTR_CREATE_punpckhbw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_punpckhbw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_punpckhdq ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_punpckhdq, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_punpckhqdq ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_punpckhqdq, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_punpckhwd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_punpckhwd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_punpcklbw ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_punpcklbw, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_punpckldq ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_punpckldq, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_punpcklqdq ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_punpcklqdq, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_punpcklwd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_punpcklwd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_push ( dc,
 ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_push_imm ( dc,
 ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_pusha ( dc   )     instr_create_pusha((dc))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_pushf ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_pxor ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_pxor, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_rcl ( dc,
d,
ri   )     instr_create_1dst_2src((dc), OP_rcl, (d), (ri), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
ri The opnd_t explicit source operand for the instruction, which must be one of the following:
  1. The register cl (opnd_create_reg(REG_CL));
  2. An immediate integer (opnd_create_immed_int()) of size OPSZ_1;
  3. An immediate integer with value 1 and size OPSZ_0 (opnd_create_immed_int(1, OPSZ_0)), which will become an implicit operand (whereas opnd_create_immed_int(1, OPSZ_1) will be encoded explicitly).

#define INSTR_CREATE_rcpps ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_rcpps, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_rcpss ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_rcpss, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_rcr ( dc,
d,
ri   )     instr_create_1dst_2src((dc), OP_rcr, (d), (ri), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
ri The opnd_t explicit source operand for the instruction, which must be one of the following:
  1. The register cl (opnd_create_reg(REG_CL));
  2. An immediate integer (opnd_create_immed_int()) of size OPSZ_1;
  3. An immediate integer with value 1 and size OPSZ_0 (opnd_create_immed_int(1, OPSZ_0)), which will become an implicit operand (whereas opnd_create_immed_int(1, OPSZ_1) will be encoded explicitly).

#define INSTR_CREATE_rdmsr ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rdpmc ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rdtsc ( dc   )     instr_create_2dst_0src((dc), OP_rdtsc, opnd_create_reg(REG_EDX), opnd_create_reg(REG_EAX))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rep_cmps_1 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rep_cmps_4 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rep_ins_1 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rep_ins_4 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rep_lods_1 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rep_lods_4 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rep_movs_1 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rep_movs_4 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rep_outs_1 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rep_outs_4 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rep_scas_1 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rep_scas_4 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rep_stos_1 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rep_stos_4 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_repne_cmps_1 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_repne_cmps_4 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_repne_scas_1 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_repne_scas_4 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_ret ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_ret_far ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_ret_far_imm ( dc,
 ) 

Value:

This INSTR_CREATE_xxx_imm macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. The _imm suffix distinguishes between alternative forms of the same opcode: these forms take an explicit immediate.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_ret_imm ( dc,
 ) 

Value:

This INSTR_CREATE_xxx_imm macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. The _imm suffix distinguishes between alternative forms of the same opcode: these forms take an explicit immediate.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_rol ( dc,
d,
ri   )     instr_create_1dst_2src((dc), OP_rol, (d), (ri), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
ri The opnd_t explicit source operand for the instruction, which must be one of the following:
  1. The register cl (opnd_create_reg(REG_CL));
  2. An immediate integer (opnd_create_immed_int()) of size OPSZ_1;
  3. An immediate integer with value 1 and size OPSZ_0 (opnd_create_immed_int(1, OPSZ_0)), which will become an implicit operand (whereas opnd_create_immed_int(1, OPSZ_1) will be encoded explicitly).

#define INSTR_CREATE_ror ( dc,
d,
ri   )     instr_create_1dst_2src((dc), OP_ror, (d), (ri), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
ri The opnd_t explicit source operand for the instruction, which must be one of the following:
  1. The register cl (opnd_create_reg(REG_CL));
  2. An immediate integer (opnd_create_immed_int()) of size OPSZ_1;
  3. An immediate integer with value 1 and size OPSZ_0 (opnd_create_immed_int(1, OPSZ_0)), which will become an implicit operand (whereas opnd_create_immed_int(1, OPSZ_1) will be encoded explicitly).

#define INSTR_CREATE_roundpd ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_roundpd, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_roundps ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_roundps, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_roundsd ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_roundsd, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_roundss ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_roundss, (d), (s), (i))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_rsm ( dc   )     instr_create_0dst_0src((dc), OP_rsm)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_rsqrtps ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_rsqrtps, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_rsqrtss ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_rsqrtss, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_sahf ( dc   )     instr_create_0dst_1src((dc), OP_sahf, opnd_create_reg(REG_AH))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_salc ( dc   )     instr_create_1dst_0src((dc), OP_salc, opnd_create_reg(REG_AL))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_sar ( dc,
d,
ri   )     instr_create_1dst_2src((dc), OP_sar, (d), (ri), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
ri The opnd_t explicit source operand for the instruction, which must be one of the following:
  1. The register cl (opnd_create_reg(REG_CL));
  2. An immediate integer (opnd_create_immed_int()) of size OPSZ_1;
  3. An immediate integer with value 1 and size OPSZ_0 (opnd_create_immed_int(1, OPSZ_0)), which will become an implicit operand (whereas opnd_create_immed_int(1, OPSZ_1) will be encoded explicitly).

#define INSTR_CREATE_sbb ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_sbb, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_scas_1 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_scas_4 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_setcc ( dc,
op,
 )     instr_create_1dst_0src((dc), (op), (d))

Creats an instr_t for a conditional set instruction with the given opcode and destination operand.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
op The OP_xxx opcode for the instruction, which should be in the range [OP_seto, OP_setnle].
d The opnd_t destination operand for the instruction.

#define INSTR_CREATE_sfence ( dc   )     instr_create_0dst_0src((dc), OP_sfence)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_sgdt ( dc,
 )     instr_create_1dst_0src((dc), OP_sgdt, (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction, which can be created with OPND_CREATE_MEM_sgdt() to get the appropriate operand size.

#define INSTR_CREATE_shl ( dc,
d,
ri   )     instr_create_1dst_2src((dc), OP_shl, (d), (ri), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
ri The opnd_t explicit source operand for the instruction, which must be one of the following:
  1. The register cl (opnd_create_reg(REG_CL));
  2. An immediate integer (opnd_create_immed_int()) of size OPSZ_1;
  3. An immediate integer with value 1 and size OPSZ_0 (opnd_create_immed_int(1, OPSZ_0)), which will become an implicit operand (whereas opnd_create_immed_int(1, OPSZ_1) will be encoded explicitly).

#define INSTR_CREATE_shld ( dc,
d,
s,
ri   )     instr_create_1dst_3src((dc), OP_shld, (d), (s), (ri), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
ri The opnd_t explicit source operand for the instruction, which must be one of the following:
  1. The register cl (opnd_create_reg(REG_CL));
  2. An immediate integer (opnd_create_immed_int()) of size OPSZ_1;

#define INSTR_CREATE_shr ( dc,
d,
ri   )     instr_create_1dst_2src((dc), OP_shr, (d), (ri), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
ri The opnd_t explicit source operand for the instruction, which must be one of the following:
  1. The register cl (opnd_create_reg(REG_CL));
  2. An immediate integer (opnd_create_immed_int()) of size OPSZ_1;
  3. An immediate integer with value 1 and size OPSZ_0 (opnd_create_immed_int(1, OPSZ_0)), which will become an implicit operand (whereas opnd_create_immed_int(1, OPSZ_1) will be encoded explicitly).

#define INSTR_CREATE_shrd ( dc,
d,
s,
ri   )     instr_create_1dst_3src((dc), OP_shrd, (d), (s), (ri), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
ri The opnd_t explicit source operand for the instruction, which must be one of the following:
  1. The register cl (opnd_create_reg(REG_CL));
  2. An immediate integer (opnd_create_immed_int()) of size OPSZ_1;

#define INSTR_CREATE_shufpd ( dc,
d,
s,
 )     instr_create_1dst_3src((dc), OP_shufpd, (d), (s), (i), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_shufps ( dc,
d,
s,
 )     instr_create_1dst_3src((dc), OP_shufps, (d), (s), (i), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.
i The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).

#define INSTR_CREATE_sidt ( dc,
 )     instr_create_1dst_0src((dc), OP_sidt, (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction, which can be created with OPND_CREATE_MEM_sidt() to get the appropriate operand size.

#define INSTR_CREATE_sldt ( dc,
 )     instr_create_1dst_0src((dc), OP_sldt, (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.

#define INSTR_CREATE_smsw ( dc,
 )     instr_create_1dst_0src((dc), OP_smsw, (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.

#define INSTR_CREATE_sqrtpd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_sqrtpd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_sqrtps ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_sqrtps, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_sqrtsd ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_sqrtsd, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_sqrtss ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_sqrtss, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_stc ( dc   )     instr_create_0dst_0src((dc), OP_stc)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_std ( dc   )     instr_create_0dst_0src((dc), OP_std)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_sti ( dc   )     instr_create_0dst_0src((dc), OP_sti)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_stmxcsr ( dc,
 )     instr_create_1dst_0src((dc), OP_stmxcsr, (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.

#define INSTR_CREATE_stos_1 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_stos_4 ( dc   ) 

Value:

This INSTR_CREATE_xxx_1 or INSTR_CREATE_xxx_4 macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands. The _1 or _4 suffixes distinguish between alternative forms of the same opcode (1 and 4 identify the operand size).
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_str ( dc,
 )     instr_create_1dst_0src((dc), OP_str, (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.

#define INSTR_CREATE_sub ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_sub, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_subpd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_subpd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_subps ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_subps, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_subsd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_subsd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_subss ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_subss, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_swapgs ( dc   )     instr_create_0dst_0src((dc), OP_swapgs)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_syscall ( dc   )     instr_create_1dst_0src((dc), OP_syscall, opnd_create_reg(REG_XCX))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_sysenter ( dc   )     instr_create_1dst_0src((dc), OP_sysenter, opnd_create_reg(REG_XSP))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_sysexit ( dc   )     instr_create_1dst_0src((dc), OP_sysexit, opnd_create_reg(REG_XSP))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_sysret ( dc   )     instr_create_0dst_0src((dc), OP_sysret)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_test ( dc,
s1,
s2   )     instr_create_0dst_2src((dc), OP_test, (s1), (s2))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s1 The opnd_t first source operand for the instruction.
s2 The opnd_t second source operand for the instruction.

#define INSTR_CREATE_ucomisd ( dc,
s1,
s2   )     instr_create_0dst_2src((dc), OP_ucomisd, (s1), (s2))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s1 The opnd_t first source operand for the instruction.
s2 The opnd_t second source operand for the instruction.

#define INSTR_CREATE_ucomiss ( dc,
s1,
s2   )     instr_create_0dst_2src((dc), OP_ucomiss, (s1), (s2))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s1 The opnd_t first source operand for the instruction.
s2 The opnd_t second source operand for the instruction.

#define INSTR_CREATE_ud2a ( dc   )     instr_create_0dst_0src((dc), OP_ud2a)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_ud2b ( dc   )     instr_create_0dst_0src((dc), OP_ud2b)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_unpckhpd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_unpckhpd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_unpckhps ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_unpckhps, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_unpcklpd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_unpcklpd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_unpcklps ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_unpcklps, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_verr ( dc,
 )     instr_create_0dst_1src((dc), OP_verr, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_verw ( dc,
 )     instr_create_0dst_1src((dc), OP_verw, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_vmcall ( dc   )     instr_create_0dst_0src((dc), OP_vmcall)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_vmclear ( dc,
 )     instr_create_1dst_0src((dc), OP_vmclear, (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.

#define INSTR_CREATE_vmlaunch ( dc   )     instr_create_0dst_0src((dc), OP_vmlaunch)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_vmptrld ( dc,
 )     instr_create_0dst_1src((dc), OP_vmptrld, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_vmptrst ( dc,
 )     instr_create_1dst_0src((dc), OP_vmptrst, (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.

#define INSTR_CREATE_vmread ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_vmread, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_vmresume ( dc   )     instr_create_0dst_0src((dc), OP_vmresume)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_vmwrite ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_vmwrite, (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_vmxoff ( dc   )     instr_create_0dst_0src((dc), OP_vmxoff)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_vmxon ( dc,
 )     instr_create_0dst_1src((dc), OP_vmxon, (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_wbinvd ( dc   )     instr_create_0dst_0src((dc), OP_wbinvd)

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_wrmsr ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_xadd ( dc,
d,
 )     instr_create_2dst_2src((dc), OP_xadd, (d), (s), (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_xchg ( dc,
d,
 )     instr_create_2dst_2src((dc), OP_xchg, (d), (s), (d), (s))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_xlat ( dc   ) 

Value:

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
Parameters:
dc The void * dcontext used to allocate memory for the instr_t.

#define INSTR_CREATE_xor ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_xor, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_xorpd ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_xorpd, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_CREATE_xorps ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_xorps, (d), (s), (d))

This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.

Parameters:
dc The void * dcontext used to allocate memory for the instr_t.
d The opnd_t explicit destination operand for the instruction.
s The opnd_t explicit source operand for the instruction.

#define INSTR_XL8 ( instr_ptr,
app_addr   )     instr_set_translation((instr_ptr), (app_addr))

Set the translation field for an instruction. For example: instr_t *pushf_instr = INSTR_XL8(INSTR_CREATE_pushf(drcontext), addr);

#define LOCK ( instr_ptr   )     instr_set_prefix_flag((instr_ptr), PREFIX_LOCK)

Add the lock prefix to an instruction. For example: instr_t *lock_inc_instr = LOCK(INSTR_CREATE_inc(....));

#define OPND_CREATE_ABSMEM ( addr,
size   )     opnd_create_rel_addr(addr, size)

Create an absolute address operand encoded as pc-relative. Encoding will fail if addr is out of 32-bit-signed-displacement reach.

#define OPND_CREATE_INT16 ( val   )     opnd_create_immed_int((ptr_int_t)(val), OPSZ_2)

Create a 2-byte immediate integer operand.

#define OPND_CREATE_INT32 ( val   )     opnd_create_immed_int((ptr_int_t)(val), OPSZ_4)

Create a 4-byte immediate integer operand.

#define OPND_CREATE_INT64 ( val   )     opnd_create_immed_int((ptr_int_t)(val), OPSZ_8)

Create an 8-byte immediate integer operand.

#define OPND_CREATE_INT8 ( val   )     opnd_create_immed_int((ptr_int_t)(val), OPSZ_1)

Create a 1-byte immediate integer operand.

#define OPND_CREATE_INT_16OR8 ( val   ) 

Value:

((val) <= INT8_MAX && (ptr_int_t)(val) >= INT8_MIN ? \
    OPND_CREATE_INT8(val) : OPND_CREATE_INT16(val))
Create a 1-byte immediate interger operand if val will fit, else create a 2-byte immediate integer operand.

#define OPND_CREATE_INT_32OR8 ( val   ) 

Value:

((val) <= INT8_MAX && (ptr_int_t)(val) >= INT8_MIN ? \
    OPND_CREATE_INT8(val) : OPND_CREATE_INT32(val))
Create a 1-byte immediate interger operand if val will fit, else create a 4-byte immediate integer operand.

#define OPND_CREATE_INTPTR   OPND_CREATE_INT64

Create a pointer-sized immediate integer operand.

#define OPND_CREATE_MEM16 ( base_reg,
disp   )     opnd_create_base_disp(base_reg, REG_NULL, 0, disp, OPSZ_2)

Create a base+disp 2-byte operand.

#define OPND_CREATE_MEM32 ( base_reg,
disp   )     opnd_create_base_disp(base_reg, REG_NULL, 0, disp, OPSZ_4)

Create a base+disp 4-byte operand.

#define OPND_CREATE_MEM64 ( base_reg,
disp   )     opnd_create_base_disp(base_reg, REG_NULL, 0, disp, OPSZ_8)

Create a base+disp 8-byte operand.

#define OPND_CREATE_MEM8 ( base_reg,
disp   )     opnd_create_base_disp(base_reg, REG_NULL, 0, disp, OPSZ_1)

Create a base+disp 1-byte operand.

#define OPND_CREATE_MEM_bound ( base,
index,
scale,
disp   )     opnd_create_base_disp(base, index, scale, disp, OPSZ_bound)

Create a memory reference operand appropriately sized for OP_bound.

#define OPND_CREATE_MEM_clflush ( base,
index,
scale,
disp   )     opnd_create_base_disp(base, index, scale, disp, OPSZ_clflush)

Create a memory reference operand appropriately sized for OP_clflush.

#define OPND_CREATE_MEM_fldenv ( base,
index,
scale,
disp   )     opnd_create_base_disp(base, index, scale, disp, OPSZ_fldenv)

Create a memory reference operand appropriately sized for OP_fldenv.

#define OPND_CREATE_MEM_fnsave ( base,
index,
scale,
disp   )     opnd_create_base_disp(base, index, scale, disp, OPSZ_fnsave)

Create a memory reference operand appropriately sized for OP_fnsave.

#define OPND_CREATE_MEM_fnstenv ( base,
index,
scale,
disp   )     opnd_create_base_disp(base, index, scale, disp, OPSZ_fnstenv)

Create a memory reference operand appropriately sized for OP_fnstenv.

#define OPND_CREATE_MEM_frstor ( base,
index,
scale,
disp   )     opnd_create_base_disp(base, index, scale, disp, OPSZ_frstor)

Create a memory reference operand appropriately sized for OP_frstor.

#define OPND_CREATE_MEM_fxrstor ( base,
index,
scale,
disp   )     opnd_create_base_disp(base, index, scale, disp, OPSZ_fxrstor)

Create a memory reference operand appropriately sized for OP_fxrstor.

#define OPND_CREATE_MEM_fxsave ( base,
index,
scale,
disp   )     opnd_create_base_disp(base, index, scale, disp, OPSZ_fxsave)

Create a memory reference operand appropriately sized for OP_fxsave.

#define OPND_CREATE_MEM_invlpg ( base,
index,
scale,
disp   )     opnd_create_base_disp(base, index, scale, disp, OPSZ_invlpg)

Create a memory reference operand appropriately sized for OP_invlpg.

#define OPND_CREATE_MEM_lea ( base,
index,
scale,
disp   )     opnd_create_base_disp(base, index, scale, disp, OPSZ_lea)

Create a memory reference operand appropriately sized for OP_lea.

#define OPND_CREATE_MEM_lgdt ( base,
index,
scale,
disp   )     opnd_create_base_disp(base, index, scale, disp, OPSZ_lgdt)

Create a memory reference operand appropriately sized for OP_lgdt.

#define OPND_CREATE_MEM_lidt ( base,
index,
scale,
disp   )     opnd_create_base_disp(base, index, scale, disp, OPSZ_lidt)

Create a memory reference operand appropriately sized for OP_lidt.

#define OPND_CREATE_MEM_prefetch ( base,
index,
scale,
disp   )     opnd_create_base_disp(base, index, scale, disp, OPSZ_prefetch)

Create a memory reference operand appropriately sized for OP_prefetch*.

#define OPND_CREATE_MEM_sgdt ( base,
index,
scale,
disp   )     opnd_create_base_disp(base, index, scale, disp, OPSZ_sgdt)

Create a memory reference operand appropriately sized for OP_sgdt.

#define OPND_CREATE_MEM_sidt ( base,
index,
scale,
disp   )     opnd_create_base_disp(base, index, scale, disp, OPSZ_sidt)

Create a memory reference operand appropriately sized for OP_sidt.

#define OPND_CREATE_MEMPTR   OPND_CREATE_MEM64

Create a base+disp pointer-sized operand.


  DynamoRIO API version 2.0.0 --- Thu Apr 22 00:18:18 2010