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, DR_REG_NULL, 0, disp, OPSZ_8)
#define OPND_CREATE_MEM32(base_reg, disp)   opnd_create_base_disp(base_reg, DR_REG_NULL, 0, disp, OPSZ_4)
#define OPND_CREATE_MEM16(base_reg, disp)   opnd_create_base_disp(base_reg, DR_REG_NULL, 0, disp, OPSZ_2)
#define OPND_CREATE_MEM8(base_reg, disp)   opnd_create_base_disp(base_reg, DR_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 OPND_CREATE_MEM_xsave(base, index, scale, disp)   opnd_create_base_disp(base, index, scale, disp, OPSZ_xsave)
#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_int(dc, i)   instr_create_0dst_1src((dc), OP_int, (i))
#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(DR_REG_XCX))
#define INSTR_CREATE_jcxz(dc, t)   instr_create_0dst_2src((dc), OP_jecxz, (t), opnd_create_reg(DR_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(DR_REG_ST0), (f))
#define INSTR_CREATE_fld(dc, s)   instr_create_1dst_1src((dc), OP_fld, opnd_create_reg(DR_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)
#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_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)
#define INSTR_CREATE_vmmcall(dc)   instr_create_0dst_0src((dc), OP_vmmcall)
#define INSTR_CREATE_stgi(dc)   instr_create_0dst_0src((dc), OP_stgi)
#define INSTR_CREATE_clgi(dc)   instr_create_0dst_0src((dc), OP_clgi)
#define INSTR_CREATE_int3(dc)   instr_create_0dst_0src((dc), OP_int3)
#define INSTR_CREATE_into(dc)   instr_create_0dst_0src((dc), OP_into)
#define INSTR_CREATE_int1(dc)   instr_create_0dst_0src((dc), OP_int1)
#define INSTR_CREATE_vzeroupper(dc)   instr_create_0dst_0src((dc), OP_vzeroupper)
#define INSTR_CREATE_vzeroall(dc)   instr_create_0dst_0src((dc), OP_vzeroall)
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_vldmxcsr(dc, s)   instr_create_0dst_1src((dc), OP_vldmxcsr, (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(DR_REG_ST0))
#define INSTR_CREATE_sahf(dc)   instr_create_0dst_1src((dc), OP_sahf, opnd_create_reg(DR_REG_AH))
#define INSTR_CREATE_vmrun(dc)   instr_create_0dst_1src((dc), OP_vmrun, opnd_create_reg(DR_REG_XAX))
#define INSTR_CREATE_vmload(dc)   instr_create_0dst_1src((dc), OP_vmload, opnd_create_reg(DR_REG_XAX))
#define INSTR_CREATE_vmsave(dc)   instr_create_0dst_1src((dc), OP_vmsave, opnd_create_reg(DR_REG_XAX))
#define INSTR_CREATE_skinit(dc)   instr_create_0dst_1src((dc), OP_skinit, opnd_create_reg(DR_REG_EAX))
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_vucomiss(dc, s1, s2)   instr_create_0dst_2src((dc), OP_vucomiss, (s1), (s2))
#define INSTR_CREATE_vucomisd(dc, s1, s2)   instr_create_0dst_2src((dc), OP_vucomisd, (s1), (s2))
#define INSTR_CREATE_vcomiss(dc, s1, s2)   instr_create_0dst_2src((dc), OP_vcomiss, (s1), (s2))
#define INSTR_CREATE_vcomisd(dc, s1, s2)   instr_create_0dst_2src((dc), OP_vcomisd, (s1), (s2))
#define INSTR_CREATE_vptest(dc, s1, s2)   instr_create_0dst_2src((dc), OP_vptest, (s1), (s2))
#define INSTR_CREATE_vtestps(dc, s1, s2)   instr_create_0dst_2src((dc), OP_vtestps, (s1), (s2))
#define INSTR_CREATE_vtestpd(dc, s1, s2)   instr_create_0dst_2src((dc), OP_vtestpd, (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))
#define INSTR_CREATE_invept(dc, s1, s2)   instr_create_0dst_2src((dc), OP_invept, (s1), (s2))
#define INSTR_CREATE_invvpid(dc, s1, s2)   instr_create_0dst_2src((dc), OP_invvpid, (s1), (s2))
No destination, 2 sources

#define INSTR_CREATE_out_1(dc)
#define INSTR_CREATE_out_4(dc)
No destination, explicit immed source

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

#define INSTR_CREATE_mwait(dc)
#define INSTR_CREATE_invlpga(dc)
#define INSTR_CREATE_wrmsr(dc)
#define INSTR_CREATE_monitor(dc)
#define INSTR_CREATE_xsetbv(dc)
No destination, 3 sources: 1 implicit

#define INSTR_CREATE_xrstor(dc, s)
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(DR_REG_ST0))
#define INSTR_CREATE_fcomp(dc, s)   instr_create_0dst_2src((dc), OP_fcomp, (s), opnd_create_reg(DR_REG_ST0))
Floating-point with fp register source

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

#define INSTR_CREATE_fucompp(dc)
#define INSTR_CREATE_fcompp(dc)
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))
#define INSTR_CREATE_vstmxcsr(dc, d)   instr_create_1dst_0src((dc), OP_vstmxcsr, (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(DR_REG_AH))
#define INSTR_CREATE_sysenter(dc)   instr_create_1dst_0src((dc), OP_sysenter, opnd_create_reg(DR_REG_XSP))
#define INSTR_CREATE_sysexit(dc)   instr_create_1dst_0src((dc), OP_sysexit, opnd_create_reg(DR_REG_XSP))
#define INSTR_CREATE_syscall(dc)   instr_create_1dst_0src((dc), OP_syscall, opnd_create_reg(DR_REG_XCX))
#define INSTR_CREATE_salc(dc)   instr_create_1dst_0src((dc), OP_salc, opnd_create_reg(DR_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))
#define INSTR_CREATE_movbe(dc, d, s)   instr_create_1dst_1src((dc), OP_movbe, (d), (s))
#define INSTR_CREATE_aesimc(dc, d, s)   instr_create_1dst_1src((dc), OP_aesimc, (d), (s))
#define INSTR_CREATE_vmovups(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovups, (d), (s))
#define INSTR_CREATE_vmovupd(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovupd, (d), (s))
#define INSTR_CREATE_vmovsldup(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovsldup, (d), (s))
#define INSTR_CREATE_vmovddup(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovddup, (d), (s))
#define INSTR_CREATE_vmovlps(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovlps, (d), (s))
#define INSTR_CREATE_vmovlpd(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovlpd, (d), (s))
#define INSTR_CREATE_vmovshdup(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovshdup, (d), (s))
#define INSTR_CREATE_vmovhps(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovhps, (d), (s))
#define INSTR_CREATE_vmovhpd(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovhpd, (d), (s))
#define INSTR_CREATE_vmovaps(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovaps, (d), (s))
#define INSTR_CREATE_vmovapd(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovapd, (d), (s))
#define INSTR_CREATE_vmovntps(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovntps, (d), (s))
#define INSTR_CREATE_vmovntpd(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovntpd, (d), (s))
#define INSTR_CREATE_vcvttss2si(dc, d, s)   instr_create_1dst_1src((dc), OP_vcvttss2si, (d), (s))
#define INSTR_CREATE_vcvttsd2si(dc, d, s)   instr_create_1dst_1src((dc), OP_vcvttsd2si, (d), (s))
#define INSTR_CREATE_vcvtss2si(dc, d, s)   instr_create_1dst_1src((dc), OP_vcvtss2si, (d), (s))
#define INSTR_CREATE_vcvtsd2si(dc, d, s)   instr_create_1dst_1src((dc), OP_vcvtsd2si, (d), (s))
#define INSTR_CREATE_vmovmskps(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovmskps, (d), (s))
#define INSTR_CREATE_vmovmskpd(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovmskpd, (d), (s))
#define INSTR_CREATE_vsqrtps(dc, d, s)   instr_create_1dst_1src((dc), OP_vsqrtps, (d), (s))
#define INSTR_CREATE_vsqrtpd(dc, d, s)   instr_create_1dst_1src((dc), OP_vsqrtpd, (d), (s))
#define INSTR_CREATE_vrsqrtps(dc, d, s)   instr_create_1dst_1src((dc), OP_vrsqrtps, (d), (s))
#define INSTR_CREATE_vrcpps(dc, d, s)   instr_create_1dst_1src((dc), OP_vrcpps, (d), (s))
#define INSTR_CREATE_vcvtps2pd(dc, d, s)   instr_create_1dst_1src((dc), OP_vcvtps2pd, (d), (s))
#define INSTR_CREATE_vcvtpd2ps(dc, d, s)   instr_create_1dst_1src((dc), OP_vcvtpd2ps, (d), (s))
#define INSTR_CREATE_vcvtdq2ps(dc, d, s)   instr_create_1dst_1src((dc), OP_vcvtdq2ps, (d), (s))
#define INSTR_CREATE_vcvttps2dq(dc, d, s)   instr_create_1dst_1src((dc), OP_vcvttps2dq, (d), (s))
#define INSTR_CREATE_vcvtps2dq(dc, d, s)   instr_create_1dst_1src((dc), OP_vcvtps2dq, (d), (s))
#define INSTR_CREATE_vmovd(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovd, (d), (s))
#define INSTR_CREATE_vmovq(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovq, (d), (s))
#define INSTR_CREATE_vpmovmskb(dc, d, s)   instr_create_1dst_1src((dc), OP_vpmovmskb, (d), (s))
#define INSTR_CREATE_vcvtdq2pd(dc, d, s)   instr_create_1dst_1src((dc), OP_vcvtdq2pd, (d), (s))
#define INSTR_CREATE_vcvttpd2dq(dc, d, s)   instr_create_1dst_1src((dc), OP_vcvttpd2dq, (d), (s))
#define INSTR_CREATE_vcvtpd2dq(dc, d, s)   instr_create_1dst_1src((dc), OP_vcvtpd2dq, (d), (s))
#define INSTR_CREATE_vmovntdq(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovntdq, (d), (s))
#define INSTR_CREATE_vmovdqu(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovdqu, (d), (s))
#define INSTR_CREATE_vmovdqa(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovdqa, (d), (s))
#define INSTR_CREATE_vlddqu(dc, d, s)   instr_create_1dst_1src((dc), OP_vlddqu, (d), (s))
#define INSTR_CREATE_vpshufb(dc, d, s)   instr_create_1dst_1src((dc), OP_vpshufb, (d), (s))
#define INSTR_CREATE_vpmovsxbw(dc, d, s)   instr_create_1dst_1src((dc), OP_vpmovsxbw, (d), (s))
#define INSTR_CREATE_vpmovsxbd(dc, d, s)   instr_create_1dst_1src((dc), OP_vpmovsxbd, (d), (s))
#define INSTR_CREATE_vpmovsxbq(dc, d, s)   instr_create_1dst_1src((dc), OP_vpmovsxbq, (d), (s))
#define INSTR_CREATE_vpmovsxdw(dc, d, s)   instr_create_1dst_1src((dc), OP_vpmovsxdw, (d), (s))
#define INSTR_CREATE_vpmovsxwq(dc, d, s)   instr_create_1dst_1src((dc), OP_vpmovsxwq, (d), (s))
#define INSTR_CREATE_vpmovsxdq(dc, d, s)   instr_create_1dst_1src((dc), OP_vpmovsxdq, (d), (s))
#define INSTR_CREATE_vmovntdqa(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovntdqa, (d), (s))
#define INSTR_CREATE_vpmovzxbw(dc, d, s)   instr_create_1dst_1src((dc), OP_vpmovzxbw, (d), (s))
#define INSTR_CREATE_vpmovzxbd(dc, d, s)   instr_create_1dst_1src((dc), OP_vpmovzxbd, (d), (s))
#define INSTR_CREATE_vpmovzxbq(dc, d, s)   instr_create_1dst_1src((dc), OP_vpmovzxbq, (d), (s))
#define INSTR_CREATE_vpmovzxdw(dc, d, s)   instr_create_1dst_1src((dc), OP_vpmovzxdw, (d), (s))
#define INSTR_CREATE_vpmovzxwq(dc, d, s)   instr_create_1dst_1src((dc), OP_vpmovzxwq, (d), (s))
#define INSTR_CREATE_vpmovzxdq(dc, d, s)   instr_create_1dst_1src((dc), OP_vpmovzxdq, (d), (s))
#define INSTR_CREATE_vphminposuw(dc, d, s)   instr_create_1dst_1src((dc), OP_vphminposuw, (d), (s))
#define INSTR_CREATE_vaesimc(dc, d, s)   instr_create_1dst_1src((dc), OP_vaesimc, (d), (s))
#define INSTR_CREATE_vmovss(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovss, (d), (s))
#define INSTR_CREATE_vmovsd(dc, d, s)   instr_create_1dst_1src((dc), OP_vmovsd, (d), (s))
#define INSTR_CREATE_vcvtph2ps(dc, d, s)   instr_create_1dst_1src((dc), OP_vcvtph2ps, (d), (s))
#define INSTR_CREATE_vbroadcastss(dc, d, s)   instr_create_1dst_1src((dc), OP_vbroadcastss, (d), (s))
#define INSTR_CREATE_vbroadcastsd(dc, d, s)   instr_create_1dst_1src((dc), OP_vbroadcastsd, (d), (s))
#define INSTR_CREATE_vbroadcastf128(dc, d, s)   instr_create_1dst_1src((dc), OP_vbroadcastf128, (d), (s))
#define INSTR_CREATE_movq2dq(dc, d, s)   instr_create_1dst_1src((dc), OP_movq2dq, (d), (s))
#define INSTR_CREATE_movdq2q(dc, d, s)   instr_create_1dst_1src((dc), OP_movdq2q, (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)
#define INSTR_CREATE_daa(dc)
#define INSTR_CREATE_das(dc)
#define INSTR_CREATE_aaa(dc)
#define INSTR_CREATE_aas(dc)
#define INSTR_CREATE_cwde(dc)
#define INSTR_CREATE_xlat(dc)
In with no explicit sources

#define INSTR_CREATE_in_1(dc)
#define INSTR_CREATE_in_4(dc)
In with explicit source

#define INSTR_CREATE_in_1_imm(dc, i)   instr_create_1dst_1src((dc), OP_in, opnd_create_reg(DR_REG_AL), (i))
#define INSTR_CREATE_in_4_imm(dc, i)   instr_create_1dst_1src((dc), OP_in, opnd_create_reg(DR_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(DR_REG_ST0))
#define INSTR_CREATE_fstp(dc, d)   instr_create_1dst_1src((dc), OP_fstp, (d), opnd_create_reg(DR_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(DR_REG_ST0))
#define INSTR_CREATE_fistp(dc, m)   instr_create_1dst_1src((dc), OP_fistp, (m), opnd_create_reg(DR_REG_ST0))
#define INSTR_CREATE_fisttp(dc, m)   instr_create_1dst_1src((dc), OP_fisttp, (m), opnd_create_reg(DR_REG_ST0))
#define INSTR_CREATE_fbstp(dc, m)   instr_create_1dst_1src((dc), OP_fbstp, (m), opnd_create_reg(DR_REG_ST0))
Floating-point with memory source

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

#define INSTR_CREATE_fchs(dc)
#define INSTR_CREATE_fabs(dc)
#define INSTR_CREATE_ftst(dc)
#define INSTR_CREATE_fld1(dc)
#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)
#define INSTR_CREATE_f2xm1(dc)
#define INSTR_CREATE_fptan(dc)
#define INSTR_CREATE_fxtract(dc)
#define INSTR_CREATE_fsqrt(dc)
#define INSTR_CREATE_fsincos(dc)
#define INSTR_CREATE_frndint(dc)
#define INSTR_CREATE_fsin(dc)
#define INSTR_CREATE_fcos(dc)
#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_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))
#define INSTR_CREATE_aeskeygenassist(dc, d, s, i)   instr_create_1dst_2src((dc), OP_aeskeygenassist, (d), (s), (i))
1 destination, 2 non-immediate sources

#define INSTR_CREATE_vmovlps_NDS(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vmovlps, (d), (s1), (s2))
#define INSTR_CREATE_vmovlpd_NDS(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vmovlpd, (d), (s1), (s2))
#define INSTR_CREATE_vunpcklps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vunpcklps, (d), (s1), (s2))
#define INSTR_CREATE_vunpcklpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vunpcklpd, (d), (s1), (s2))
#define INSTR_CREATE_vunpckhps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vunpckhps, (d), (s1), (s2))
#define INSTR_CREATE_vunpckhpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vunpckhpd, (d), (s1), (s2))
#define INSTR_CREATE_vmovhps_NDS(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vmovhps, (d), (s1), (s2))
#define INSTR_CREATE_vmovhpd_NDS(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vmovhpd, (d), (s1), (s2))
#define INSTR_CREATE_vcvtsi2ss(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vcvtsi2ss, (d), (s1), (s2))
#define INSTR_CREATE_vcvtsi2sd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vcvtsi2sd, (d), (s1), (s2))
#define INSTR_CREATE_vsqrtss(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vsqrtss, (d), (s1), (s2))
#define INSTR_CREATE_vsqrtsd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vsqrtsd, (d), (s1), (s2))
#define INSTR_CREATE_vrsqrtss(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vrsqrtss, (d), (s1), (s2))
#define INSTR_CREATE_vrcpss(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vrcpss, (d), (s1), (s2))
#define INSTR_CREATE_vandps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vandps, (d), (s1), (s2))
#define INSTR_CREATE_vandpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vandpd, (d), (s1), (s2))
#define INSTR_CREATE_vandnps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vandnps, (d), (s1), (s2))
#define INSTR_CREATE_vandnpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vandnpd, (d), (s1), (s2))
#define INSTR_CREATE_vorps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vorps, (d), (s1), (s2))
#define INSTR_CREATE_vorpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vorpd, (d), (s1), (s2))
#define INSTR_CREATE_vxorps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vxorps, (d), (s1), (s2))
#define INSTR_CREATE_vxorpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vxorpd, (d), (s1), (s2))
#define INSTR_CREATE_vaddps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vaddps, (d), (s1), (s2))
#define INSTR_CREATE_vaddss(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vaddss, (d), (s1), (s2))
#define INSTR_CREATE_vaddpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vaddpd, (d), (s1), (s2))
#define INSTR_CREATE_vaddsd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vaddsd, (d), (s1), (s2))
#define INSTR_CREATE_vmulps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vmulps, (d), (s1), (s2))
#define INSTR_CREATE_vmulss(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vmulss, (d), (s1), (s2))
#define INSTR_CREATE_vmulpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vmulpd, (d), (s1), (s2))
#define INSTR_CREATE_vmulsd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vmulsd, (d), (s1), (s2))
#define INSTR_CREATE_vcvtss2sd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vcvtss2sd, (d), (s1), (s2))
#define INSTR_CREATE_vcvtsd2ss(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vcvtsd2ss, (d), (s1), (s2))
#define INSTR_CREATE_vsubps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vsubps, (d), (s1), (s2))
#define INSTR_CREATE_vsubss(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vsubss, (d), (s1), (s2))
#define INSTR_CREATE_vsubpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vsubpd, (d), (s1), (s2))
#define INSTR_CREATE_vsubsd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vsubsd, (d), (s1), (s2))
#define INSTR_CREATE_vminps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vminps, (d), (s1), (s2))
#define INSTR_CREATE_vminss(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vminss, (d), (s1), (s2))
#define INSTR_CREATE_vminpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vminpd, (d), (s1), (s2))
#define INSTR_CREATE_vminsd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vminsd, (d), (s1), (s2))
#define INSTR_CREATE_vdivps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vdivps, (d), (s1), (s2))
#define INSTR_CREATE_vdivss(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vdivss, (d), (s1), (s2))
#define INSTR_CREATE_vdivpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vdivpd, (d), (s1), (s2))
#define INSTR_CREATE_vdivsd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vdivsd, (d), (s1), (s2))
#define INSTR_CREATE_vmaxps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vmaxps, (d), (s1), (s2))
#define INSTR_CREATE_vmaxss(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vmaxss, (d), (s1), (s2))
#define INSTR_CREATE_vmaxpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vmaxpd, (d), (s1), (s2))
#define INSTR_CREATE_vmaxsd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vmaxsd, (d), (s1), (s2))
#define INSTR_CREATE_vpunpcklbw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpunpcklbw, (d), (s1), (s2))
#define INSTR_CREATE_vpunpcklwd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpunpcklwd, (d), (s1), (s2))
#define INSTR_CREATE_vpunpckldq(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpunpckldq, (d), (s1), (s2))
#define INSTR_CREATE_vpacksswb(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpacksswb, (d), (s1), (s2))
#define INSTR_CREATE_vpcmpgtb(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpcmpgtb, (d), (s1), (s2))
#define INSTR_CREATE_vpcmpgtw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpcmpgtw, (d), (s1), (s2))
#define INSTR_CREATE_vpcmpgtd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpcmpgtd, (d), (s1), (s2))
#define INSTR_CREATE_vpackuswb(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpackuswb, (d), (s1), (s2))
#define INSTR_CREATE_vpunpckhbw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpunpckhbw, (d), (s1), (s2))
#define INSTR_CREATE_vpunpckhwd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpunpckhwd, (d), (s1), (s2))
#define INSTR_CREATE_vpunpckhdq(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpunpckhdq, (d), (s1), (s2))
#define INSTR_CREATE_vpackssdw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpackssdw, (d), (s1), (s2))
#define INSTR_CREATE_vpunpcklqdq(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpunpcklqdq, (d), (s1), (s2))
#define INSTR_CREATE_vpunpckhqdq(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpunpckhqdq, (d), (s1), (s2))
#define INSTR_CREATE_vpshufhw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpshufhw, (d), (s1), (s2))
#define INSTR_CREATE_vpshufd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpshufd, (d), (s1), (s2))
#define INSTR_CREATE_vpshuflw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpshuflw, (d), (s1), (s2))
#define INSTR_CREATE_vpcmpeqb(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpcmpeqb, (d), (s1), (s2))
#define INSTR_CREATE_vpcmpeqw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpcmpeqw, (d), (s1), (s2))
#define INSTR_CREATE_vpcmpeqd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpcmpeqd, (d), (s1), (s2))
#define INSTR_CREATE_vpextrw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpextrw, (d), (s1), (s2))
#define INSTR_CREATE_vpsrlw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsrlw, (d), (s1), (s2))
#define INSTR_CREATE_vpsrld(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsrld, (d), (s1), (s2))
#define INSTR_CREATE_vpsrlq(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsrlq, (d), (s1), (s2))
#define INSTR_CREATE_vpaddq(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpaddq, (d), (s1), (s2))
#define INSTR_CREATE_vpmullw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpmullw, (d), (s1), (s2))
#define INSTR_CREATE_vpsubusb(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsubusb, (d), (s1), (s2))
#define INSTR_CREATE_vpsubusw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsubusw, (d), (s1), (s2))
#define INSTR_CREATE_vpminub(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpminub, (d), (s1), (s2))
#define INSTR_CREATE_vpand(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpand, (d), (s1), (s2))
#define INSTR_CREATE_vpaddusb(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpaddusb, (d), (s1), (s2))
#define INSTR_CREATE_vpaddusw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpaddusw, (d), (s1), (s2))
#define INSTR_CREATE_vpmaxub(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpmaxub, (d), (s1), (s2))
#define INSTR_CREATE_vpandn(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpandn, (d), (s1), (s2))
#define INSTR_CREATE_vpavgb(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpavgb, (d), (s1), (s2))
#define INSTR_CREATE_vpsraw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsraw, (d), (s1), (s2))
#define INSTR_CREATE_vpsrad(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsrad, (d), (s1), (s2))
#define INSTR_CREATE_vpavgw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpavgw, (d), (s1), (s2))
#define INSTR_CREATE_vpmulhuw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpmulhuw, (d), (s1), (s2))
#define INSTR_CREATE_vpmulhw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpmulhw, (d), (s1), (s2))
#define INSTR_CREATE_vpsubsb(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsubsb, (d), (s1), (s2))
#define INSTR_CREATE_vpsubsw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsubsw, (d), (s1), (s2))
#define INSTR_CREATE_vpminsw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpminsw, (d), (s1), (s2))
#define INSTR_CREATE_vpor(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpor, (d), (s1), (s2))
#define INSTR_CREATE_vpaddsb(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpaddsb, (d), (s1), (s2))
#define INSTR_CREATE_vpaddsw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpaddsw, (d), (s1), (s2))
#define INSTR_CREATE_vpmaxsw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpmaxsw, (d), (s1), (s2))
#define INSTR_CREATE_vpxor(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpxor, (d), (s1), (s2))
#define INSTR_CREATE_vpsllw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsllw, (d), (s1), (s2))
#define INSTR_CREATE_vpslld(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpslld, (d), (s1), (s2))
#define INSTR_CREATE_vpsllq(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsllq, (d), (s1), (s2))
#define INSTR_CREATE_vpmuludq(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpmuludq, (d), (s1), (s2))
#define INSTR_CREATE_vpmaddwd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpmaddwd, (d), (s1), (s2))
#define INSTR_CREATE_vpsadbw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsadbw, (d), (s1), (s2))
#define INSTR_CREATE_vpsubb(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsubb, (d), (s1), (s2))
#define INSTR_CREATE_vpsubw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsubw, (d), (s1), (s2))
#define INSTR_CREATE_vpsubd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsubd, (d), (s1), (s2))
#define INSTR_CREATE_vpsubq(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsubq, (d), (s1), (s2))
#define INSTR_CREATE_vpaddb(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpaddb, (d), (s1), (s2))
#define INSTR_CREATE_vpaddw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpaddw, (d), (s1), (s2))
#define INSTR_CREATE_vpaddd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpaddd, (d), (s1), (s2))
#define INSTR_CREATE_vpsrldq(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsrldq, (d), (s1), (s2))
#define INSTR_CREATE_vpslldq(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpslldq, (d), (s1), (s2))
#define INSTR_CREATE_vhaddpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vhaddpd, (d), (s1), (s2))
#define INSTR_CREATE_vhaddps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vhaddps, (d), (s1), (s2))
#define INSTR_CREATE_vhsubpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vhsubpd, (d), (s1), (s2))
#define INSTR_CREATE_vhsubps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vhsubps, (d), (s1), (s2))
#define INSTR_CREATE_vaddsubpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vaddsubpd, (d), (s1), (s2))
#define INSTR_CREATE_vaddsubps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vaddsubps, (d), (s1), (s2))
#define INSTR_CREATE_vphaddw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vphaddw, (d), (s1), (s2))
#define INSTR_CREATE_vphaddd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vphaddd, (d), (s1), (s2))
#define INSTR_CREATE_vphaddsw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vphaddsw, (d), (s1), (s2))
#define INSTR_CREATE_vpmaddubsw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpmaddubsw, (d), (s1), (s2))
#define INSTR_CREATE_vphsubw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vphsubw, (d), (s1), (s2))
#define INSTR_CREATE_vphsubd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vphsubd, (d), (s1), (s2))
#define INSTR_CREATE_vphsubsw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vphsubsw, (d), (s1), (s2))
#define INSTR_CREATE_vpsignb(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsignb, (d), (s1), (s2))
#define INSTR_CREATE_vpsignw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsignw, (d), (s1), (s2))
#define INSTR_CREATE_vpsignd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpsignd, (d), (s1), (s2))
#define INSTR_CREATE_vpmulhrsw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpmulhrsw, (d), (s1), (s2))
#define INSTR_CREATE_vpabsb(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpabsb, (d), (s1), (s2))
#define INSTR_CREATE_vpabsw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpabsw, (d), (s1), (s2))
#define INSTR_CREATE_vpabsd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpabsd, (d), (s1), (s2))
#define INSTR_CREATE_vpmuldq(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpmuldq, (d), (s1), (s2))
#define INSTR_CREATE_vpcmpeqq(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpcmpeqq, (d), (s1), (s2))
#define INSTR_CREATE_vpackusdw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpackusdw, (d), (s1), (s2))
#define INSTR_CREATE_vpcmpgtq(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpcmpgtq, (d), (s1), (s2))
#define INSTR_CREATE_vpminsb(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpminsb, (d), (s1), (s2))
#define INSTR_CREATE_vpminsd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpminsd, (d), (s1), (s2))
#define INSTR_CREATE_vpminuw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpminuw, (d), (s1), (s2))
#define INSTR_CREATE_vpminud(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpminud, (d), (s1), (s2))
#define INSTR_CREATE_vpmaxsb(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpmaxsb, (d), (s1), (s2))
#define INSTR_CREATE_vpmaxsd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpmaxsd, (d), (s1), (s2))
#define INSTR_CREATE_vpmaxuw(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpmaxuw, (d), (s1), (s2))
#define INSTR_CREATE_vpmaxud(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpmaxud, (d), (s1), (s2))
#define INSTR_CREATE_vpmulld(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpmulld, (d), (s1), (s2))
#define INSTR_CREATE_vaesenc(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vaesenc, (d), (s1), (s2))
#define INSTR_CREATE_vaesenclast(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vaesenclast, (d), (s1), (s2))
#define INSTR_CREATE_vaesdec(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vaesdec, (d), (s1), (s2))
#define INSTR_CREATE_vaesdeclast(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vaesdeclast, (d), (s1), (s2))
#define INSTR_CREATE_vpextrb(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpextrb, (d), (s1), (s2))
#define INSTR_CREATE_vpextrd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpextrd, (d), (s1), (s2))
#define INSTR_CREATE_vextractps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vextractps, (d), (s1), (s2))
#define INSTR_CREATE_vroundps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vroundps, (d), (s1), (s2))
#define INSTR_CREATE_vroundpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vroundpd, (d), (s1), (s2))
#define INSTR_CREATE_vaeskeygenassist(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vaeskeygenassist, (d), (s1), (s2))
#define INSTR_CREATE_vmovss_NDS(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vmovss, (d), (s1), (s2))
#define INSTR_CREATE_vmovsd_NDS(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vmovsd, (d), (s1), (s2))
#define INSTR_CREATE_vcvtps2ph(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vcvtps2ph, (d), (s1), (s2))
#define INSTR_CREATE_vmaskmovps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vmaskmovps, (d), (s1), (s2))
#define INSTR_CREATE_vmaskmovpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vmaskmovpd, (d), (s1), (s2))
#define INSTR_CREATE_vpermilps(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpermilps, (d), (s1), (s2))
#define INSTR_CREATE_vpermilpd(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vpermilpd, (d), (s1), (s2))
#define INSTR_CREATE_vextractf128(dc, d, s1, s2)   instr_create_1dst_2src((dc), OP_vextractf128, (d), (s1), (s2))
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_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))
#define INSTR_CREATE_aesenc(dc, d, s)   instr_create_1dst_2src((dc), OP_aesenc, (d), (s), (d))
#define INSTR_CREATE_aesenclast(dc, d, s)   instr_create_1dst_2src((dc), OP_aesenclast, (d), (s), (d))
#define INSTR_CREATE_aesdec(dc, d, s)   instr_create_1dst_2src((dc), OP_aesdec, (d), (s), (d))
#define INSTR_CREATE_aesdeclast(dc, d, s)   instr_create_1dst_2src((dc), OP_aesdeclast, (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)
#define INSTR_CREATE_imul_4(dc, s)
#define INSTR_CREATE_mul_1(dc, s)
#define INSTR_CREATE_mul_4(dc, s)
#define INSTR_CREATE_div_1(dc, s)
#define INSTR_CREATE_div_4(dc, s)
#define INSTR_CREATE_idiv_1(dc, s)
#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)
#define INSTR_CREATE_vmaskmovdqu(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(DR_REG_ST0), (f))
#define INSTR_CREATE_fmulp(dc, f)   instr_create_1dst_2src((dc), OP_fmulp, (f), opnd_create_reg(DR_REG_ST0), (f))
#define INSTR_CREATE_fdivp(dc, f)   instr_create_1dst_2src((dc), OP_fdivp, (f), opnd_create_reg(DR_REG_ST0), (f))
#define INSTR_CREATE_fdivrp(dc, f)   instr_create_1dst_2src((dc), OP_fdivrp, (f), opnd_create_reg(DR_REG_ST0), (f))
#define INSTR_CREATE_fsubp(dc, f)   instr_create_1dst_2src((dc), OP_fsubp, (f), opnd_create_reg(DR_REG_ST0), (f))
#define INSTR_CREATE_fsubrp(dc, f)   instr_create_1dst_2src((dc), OP_fsubrp, (f), opnd_create_reg(DR_REG_ST0), (f))
Floating-point with implicit destination and explicit memory source

#define INSTR_CREATE_fiadd(dc, m)
#define INSTR_CREATE_fimul(dc, m)
#define INSTR_CREATE_fidiv(dc, m)
#define INSTR_CREATE_fidivr(dc, m)
#define INSTR_CREATE_fisub(dc, m)
#define INSTR_CREATE_fisubr(dc, m)
#define INSTR_CREATE_ficom(dc, m)
#define INSTR_CREATE_ficomp(dc, m)
1 destination, 2 implicit sources

#define INSTR_CREATE_xsave(dc, d)
#define INSTR_CREATE_xsaveopt(dc, d)
1 implicit destination, 2 sources: 1 explicit, 1 implicit

#define INSTR_CREATE_aam(dc, i)
#define INSTR_CREATE_aad(dc, i)
Loop instructions

#define INSTR_CREATE_loopne(dc, t)
#define INSTR_CREATE_loope(dc, t)
#define INSTR_CREATE_loop(dc, t)
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 non-immediate sources

#define INSTR_CREATE_vpblendvb(dc, d, s1, s2, s3)   instr_create_1dst_3src((dc), OP_vpblendvb, (d), (s1), (s2), (s3))
#define INSTR_CREATE_vblendvps(dc, d, s1, s2, s3)   instr_create_1dst_3src((dc), OP_vblendvps, (d), (s1), (s2), (s3))
#define INSTR_CREATE_vblendvpd(dc, d, s1, s2, s3)   instr_create_1dst_3src((dc), OP_vblendvpd, (d), (s1), (s2), (s3))
1 destination, 3 sources including one immediate

#define INSTR_CREATE_vcmpps(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vcmpps, (d), (s1), (s2), (i))
#define INSTR_CREATE_vcmpss(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vcmpss, (d), (s1), (s2), (i))
#define INSTR_CREATE_vcmppd(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vcmppd, (d), (s1), (s2), (i))
#define INSTR_CREATE_vcmpsd(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vcmpsd, (d), (s1), (s2), (i))
#define INSTR_CREATE_vpinsrw(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vpinsrw, (d), (s1), (s2), (i))
#define INSTR_CREATE_vshufps(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vshufps, (d), (s1), (s2), (i))
#define INSTR_CREATE_vshufpd(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vshufpd, (d), (s1), (s2), (i))
#define INSTR_CREATE_vpalignr(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vpalignr, (d), (s1), (s2), (i))
#define INSTR_CREATE_vblendps(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vblendps, (d), (s1), (s2), (i))
#define INSTR_CREATE_vblendpd(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vblendpd, (d), (s1), (s2), (i))
#define INSTR_CREATE_vpblendw(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vpblendw, (d), (s1), (s2), (i))
#define INSTR_CREATE_vpinsrb(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vpinsrb, (d), (s1), (s2), (i))
#define INSTR_CREATE_vinsertps(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vinsertps, (d), (s1), (s2), (i))
#define INSTR_CREATE_vpinsrd(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vpinsrd, (d), (s1), (s2), (i))
#define INSTR_CREATE_vdpps(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vdpps, (d), (s1), (s2), (i))
#define INSTR_CREATE_vdppd(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vdppd, (d), (s1), (s2), (i))
#define INSTR_CREATE_vmpsadbw(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vmpsadbw, (d), (s1), (s2), (i))
#define INSTR_CREATE_vpclmulqdq(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vpclmulqdq, (d), (s1), (s2), (i))
#define INSTR_CREATE_vroundss(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vroundss, (d), (s1), (s2), (i))
#define INSTR_CREATE_vroundsd(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vroundsd, (d), (s1), (s2), (i))
#define INSTR_CREATE_vperm2f128(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vperm2f128, (d), (s1), (s2), (i))
#define INSTR_CREATE_vinsertf128(dc, d, s1, s2, i)   instr_create_1dst_3src((dc), OP_vinsertf128, (d), (s1), (s2), (i))
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 destination, 3 sources: 1 implicit, 1 immed

#define INSTR_CREATE_pclmulqdq(dc, d, s, i)   instr_create_1dst_3src((dc), OP_pclmulqdq, (d), (s), (i), (d))
#define INSTR_CREATE_blendps(dc, d, s, i)   instr_create_1dst_3src((dc), OP_blendps, (d), (s), (i), (d))
#define INSTR_CREATE_blendpd(dc, d, s, i)   instr_create_1dst_3src((dc), OP_blendpd, (d), (s), (i), (d))
#define INSTR_CREATE_pblendw(dc, d, s, i)   instr_create_1dst_3src((dc), OP_pblendw, (d), (s), (i), (d))
1 explicit destination, 2 explicit sources, 1 implicit source

#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 explicit destination, 2 explicit sources, dest is implicit source

#define INSTR_CREATE_vfmadd132ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmadd132ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmadd132pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmadd132pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmadd213ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmadd213ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmadd213pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmadd213pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmadd231ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmadd231ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmadd231pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmadd231pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmadd132ss(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmadd132ss, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmadd132sd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmadd132sd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmadd213ss(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmadd213ss, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmadd213sd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmadd213sd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmadd231ss(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmadd231ss, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmadd231sd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmadd231sd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmaddsub132ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmaddsub132ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmaddsub132pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmaddsub132pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmaddsub213ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmaddsub213ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmaddsub213pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmaddsub213pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmaddsub231ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmaddsub231ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmaddsub231pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmaddsub231pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsubadd132ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsubadd132ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsubadd132pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsubadd132pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsubadd213ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsubadd213ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsubadd213pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsubadd213pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsubadd231ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsubadd231ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsubadd231pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsubadd231pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsub132ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsub132ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsub132pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsub132pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsub213ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsub213ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsub213pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsub213pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsub231ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsub231ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsub231pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsub231pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsub132ss(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsub132ss, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsub132sd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsub132sd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsub213ss(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsub213ss, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsub213sd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsub213sd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsub231ss(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsub231ss, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfmsub231sd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfmsub231sd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmadd132ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmadd132ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmadd132pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmadd132pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmadd213ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmadd213ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmadd213pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmadd213pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmadd231ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmadd231ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmadd231pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmadd231pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmadd132ss(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmadd132ss, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmadd132sd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmadd132sd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmadd213ss(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmadd213ss, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmadd213sd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmadd213sd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmadd231ss(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmadd231ss, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmadd231sd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmadd231sd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmsub132ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmsub132ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmsub132pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmsub132pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmsub213ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmsub213ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmsub213pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmsub213pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmsub231ps(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmsub231ps, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmsub231pd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmsub231pd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmsub132ss(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmsub132ss, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmsub132sd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmsub132sd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmsub213ss(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmsub213ss, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmsub213sd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmsub213sd, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmsub231ss(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmsub231ss, (d), (s1), (s2), (d))
#define INSTR_CREATE_vfnmsub231sd(dc, d, s1, s2)   instr_create_1dst_3src((dc), OP_vfnmsub231sd, (d), (s1), (s2), (d))
1 destination, 3 sources where 2 are implicit

#define INSTR_CREATE_pblendvb(dc, d, s)   instr_create_1dst_3src((dc), OP_pblendvb, (d), (s), opnd_create_reg(DR_REG_XMM0), (d))
#define INSTR_CREATE_blendvps(dc, d, s)   instr_create_1dst_3src((dc), OP_blendvps, (d), (s), opnd_create_reg(DR_REG_XMM0), (d))
#define INSTR_CREATE_blendvpd(dc, d, s)   instr_create_1dst_3src((dc), OP_blendvpd, (d), (s), opnd_create_reg(DR_REG_XMM0), (d))
1 implicit destination, 3 sources

#define INSTR_CREATE_pcmpistrm(dc, s1, s2, i)   instr_create_1dst_3src((dc), OP_pcmpistrm, opnd_create_reg(DR_REG_XMM0), (s1), (s2), (i))
#define INSTR_CREATE_pcmpistri(dc, s1, s2, i)   instr_create_1dst_3src((dc), OP_pcmpistri, opnd_create_reg(DR_REG_ECX), (s1), (s2), (i))
#define INSTR_CREATE_vpcmpistrm(dc, s1, s2, i)
#define INSTR_CREATE_vpcmpistri(dc, 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)
#define INSTR_CREATE_vpcmpestrm(dc, s1, s2, i)
#define INSTR_CREATE_vpcmpestri(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(DR_SEG_DS), (s))
#define INSTR_CREATE_lss(dc, d, s)   instr_create_2dst_1src((dc), OP_lss, (d), opnd_create_reg(DR_SEG_SS), (s))
#define INSTR_CREATE_les(dc, d, s)   instr_create_2dst_1src((dc), OP_les, (d), opnd_create_reg(DR_SEG_ES), (s))
#define INSTR_CREATE_lfs(dc, d, s)   instr_create_2dst_1src((dc), OP_lfs, (d), opnd_create_reg(DR_SEG_FS), (s))
#define INSTR_CREATE_lgs(dc, d, s)   instr_create_2dst_1src((dc), OP_lgs, (d), opnd_create_reg(DR_SEG_GS), (s))
2 implicit destinations, 1 implicit source

#define INSTR_CREATE_pushf(dc)
#define INSTR_CREATE_rdmsr(dc)
#define INSTR_CREATE_rdpmc(dc)
#define INSTR_CREATE_xgetbv(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_rdtscp(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, DR_REG_XDI)
#define INSTR_CREATE_nop3byte(dc)   INSTR_CREATE_nop3byte_reg(dc, DR_REG_XDI)

2-byte reg nops



#define INSTR_CREATE_nop3byte_reg(dc, reg)

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   ) 
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_aad ( 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 source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).
#define INSTR_CREATE_aam ( 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 source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()).
#define INSTR_CREATE_aas ( 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_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_aesdec ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_aesdec, (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_aesdeclast ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_aesdeclast, (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_aesenc ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_aesenc, (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_aesenclast ( dc,
d,
 )     instr_create_1dst_2src((dc), OP_aesenclast, (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_aesimc ( dc,
d,
 )     instr_create_1dst_1src((dc), OP_aesimc, (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_aeskeygenassist ( dc,
d,
s,
 )     instr_create_1dst_2src((dc), OP_aeskeygenassist, (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_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_3src((dc), OP_blendpd, (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_blendps ( dc,
d,
s,
 )     instr_create_1dst_3src((dc), OP_blendps, (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_blendvpd ( dc,
d,
 )     instr_create_1dst_3src((dc), OP_blendvpd, (d), (s), opnd_create_reg(DR_REG_XMM0), (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_blendvps ( dc,
d,
 )     instr_create_1dst_3src((dc), OP_blendvps, (d), (s), opnd_create_reg(DR_REG_XMM0), (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_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   ) 
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_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_clgi ( dc   )     instr_create_0dst_0src((dc), OP_clgi)

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_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   ) 
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_daa ( 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_das ( 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_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,
 ) 
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_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   ) 
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_fabs ( 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_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 DR_REG_ST0.
#define INSTR_CREATE_faddp ( dc,
 )     instr_create_1dst_2src((dc), OP_faddp, (f), opnd_create_reg(DR_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(DR_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(DR_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   ) 
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_fcmovcc ( dc,
op,
 )     instr_create_1dst_1src((dc), (op), opnd_create_reg(DR_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(DR_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 DR_REG_ST0.
#define INSTR_CREATE_fcomi ( dc,
 )     instr_create_0dst_2src((dc), OP_fcomi, opnd_create_reg(DR_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 DR_REG_ST0.
#define INSTR_CREATE_fcomip ( dc,
 )     instr_create_0dst_2src((dc), OP_fcomip, opnd_create_reg(DR_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 DR_REG_ST0.
#define INSTR_CREATE_fcomp ( dc,
 )     instr_create_0dst_2src((dc), OP_fcomp, (s), opnd_create_reg(DR_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 DR_REG_ST0.
#define INSTR_CREATE_fcompp ( 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_fcos ( dc   ) 
Value:

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

Parameters: