Instruction creation convenience macros. More...
#include <math.h>Defines | |
| #define | LOCK(instr_ptr) instr_set_prefix_flag((instr_ptr), PREFIX_LOCK) |
| #define | INSTR_XL8(instr_ptr, app_addr) instr_set_translation((instr_ptr), (app_addr)) |
| #define | OPND_CREATE_MEM64(base_reg, disp) opnd_create_base_disp(base_reg, REG_NULL, 0, disp, OPSZ_8) |
| #define | OPND_CREATE_MEM32(base_reg, disp) opnd_create_base_disp(base_reg, REG_NULL, 0, disp, OPSZ_4) |
| #define | OPND_CREATE_MEM16(base_reg, disp) opnd_create_base_disp(base_reg, REG_NULL, 0, disp, OPSZ_2) |
| #define | OPND_CREATE_MEM8(base_reg, disp) opnd_create_base_disp(base_reg, REG_NULL, 0, disp, OPSZ_1) |
| #define | OPND_CREATE_MEMPTR OPND_CREATE_MEM64 |
| #define | OPND_CREATE_ABSMEM(addr, size) opnd_create_rel_addr(addr, size) |
| #define | OPND_CREATE_INT64(val) opnd_create_immed_int((ptr_int_t)(val), OPSZ_8) |
| #define | OPND_CREATE_INTPTR OPND_CREATE_INT64 |
| #define | OPND_CREATE_INT32(val) opnd_create_immed_int((ptr_int_t)(val), OPSZ_4) |
| #define | OPND_CREATE_INT16(val) opnd_create_immed_int((ptr_int_t)(val), OPSZ_2) |
| #define | OPND_CREATE_INT8(val) opnd_create_immed_int((ptr_int_t)(val), OPSZ_1) |
| #define | OPND_CREATE_INT_32OR8(val) |
| #define | OPND_CREATE_INT_16OR8(val) |
| #define | OPND_CREATE_MEM_lea(base, index, scale, disp) opnd_create_base_disp(base, index, scale, disp, OPSZ_lea) |
| #define | OPND_CREATE_MEM_invlpg(base, index, scale, disp) opnd_create_base_disp(base, index, scale, disp, OPSZ_invlpg) |
| #define | OPND_CREATE_MEM_clflush(base, index, scale, disp) opnd_create_base_disp(base, index, scale, disp, OPSZ_clflush) |
| #define | OPND_CREATE_MEM_prefetch(base, index, scale, disp) opnd_create_base_disp(base, index, scale, disp, OPSZ_prefetch) |
| #define | OPND_CREATE_MEM_lgdt(base, index, scale, disp) opnd_create_base_disp(base, index, scale, disp, OPSZ_lgdt) |
| #define | OPND_CREATE_MEM_sgdt(base, index, scale, disp) opnd_create_base_disp(base, index, scale, disp, OPSZ_sgdt) |
| #define | OPND_CREATE_MEM_lidt(base, index, scale, disp) opnd_create_base_disp(base, index, scale, disp, OPSZ_lidt) |
| #define | OPND_CREATE_MEM_sidt(base, index, scale, disp) opnd_create_base_disp(base, index, scale, disp, OPSZ_sidt) |
| #define | OPND_CREATE_MEM_bound(base, index, scale, disp) opnd_create_base_disp(base, index, scale, disp, OPSZ_bound) |
| #define | OPND_CREATE_MEM_fldenv(base, index, scale, disp) opnd_create_base_disp(base, index, scale, disp, OPSZ_fldenv) |
| #define | OPND_CREATE_MEM_fnstenv(base, index, scale, disp) opnd_create_base_disp(base, index, scale, disp, OPSZ_fnstenv) |
| #define | OPND_CREATE_MEM_fnsave(base, index, scale, disp) opnd_create_base_disp(base, index, scale, disp, OPSZ_fnsave) |
| #define | OPND_CREATE_MEM_frstor(base, index, scale, disp) opnd_create_base_disp(base, index, scale, disp, OPSZ_frstor) |
| #define | OPND_CREATE_MEM_fxsave(base, index, scale, disp) opnd_create_base_disp(base, index, scale, disp, OPSZ_fxsave) |
| #define | OPND_CREATE_MEM_fxrstor(base, index, scale, disp) opnd_create_base_disp(base, index, scale, disp, OPSZ_fxrstor) |
| #define | INSTR_CREATE_label(dc) instr_create_0dst_0src((dc), OP_LABEL) |
| #define | INSTR_CREATE_jcc_short(dc, op, t) instr_create_0dst_1src((dc), (op), (t)) |
| #define | INSTR_CREATE_jcc(dc, op, t) instr_create_0dst_1src((dc), (op), (t)) |
| #define | INSTR_CREATE_jmp_ind(dc, t) instr_create_0dst_1src((dc), OP_jmp_ind, (t)) |
| #define | INSTR_CREATE_jmp_far(dc, t) instr_create_0dst_1src((dc), OP_jmp_far, (t)) |
| #define | INSTR_CREATE_jmp_far_ind(dc, t) instr_create_0dst_1src((dc), OP_jmp_far_ind, (t)) |
| #define | INSTR_CREATE_clflush(dc, s) instr_create_0dst_1src((dc), OP_clflush, (s)) |
| #define | INSTR_CREATE_fldenv(dc, m) instr_create_0dst_1src((dc), OP_fldenv, (m)) |
| #define | INSTR_CREATE_fldcw(dc, m) instr_create_0dst_1src((dc), OP_fldcw, (m)) |
| #define | INSTR_CREATE_frstor(dc, m) instr_create_0dst_1src((dc), OP_frstor, (m)) |
| #define | INSTR_CREATE_jecxz(dc, t) instr_create_0dst_2src((dc), OP_jecxz, (t), opnd_create_reg(REG_XCX)) |
| #define | INSTR_CREATE_jcxz(dc, t) instr_create_0dst_2src((dc), OP_jecxz, (t), opnd_create_reg(REG_CX)) |
| #define | INSTR_CREATE_setcc(dc, op, d) instr_create_1dst_0src((dc), (op), (d)) |
| #define | INSTR_CREATE_ffree(dc, f) instr_create_1dst_0src((dc), OP_ffree, (f)) |
| #define | INSTR_CREATE_fcmovcc(dc, op, f) instr_create_1dst_1src((dc), (op), opnd_create_reg(REG_ST0), (f)) |
| #define | INSTR_CREATE_fld(dc, s) instr_create_1dst_1src((dc), OP_fld, opnd_create_reg(REG_ST0), (s)) |
| #define | INSTR_CREATE_cmovcc(dc, op, d, s) instr_create_1dst_2src((dc), (op), (d), (s), (d)) |
| #define | INSTR_CREATE_imul_imm(dc, d, s, i) instr_create_1dst_2src((dc), OP_imul, (d), (s), (i)) |
| #define | INSTR_CREATE_imul(dc, d, s) instr_create_1dst_2src((dc), OP_imul, (d), (s), (d)) |
| #define | INSTR_CREATE_extrq(dc, d, r) instr_create_1dst_1src((dc), OP_extrq, (d), (r)) |
| #define | INSTR_CREATE_extrq_imm(dc, d, i1, i2) instr_create_1dst_2src((dc), OP_extrq, (d), (i1), (i2)) |
| #define | INSTR_CREATE_insertq(dc, d, r) instr_create_1dst_1src((dc), OP_insertq, (d), (r)) |
| #define | INSTR_CREATE_insertq_imm(dc, d, r, i1, i2) instr_create_1dst_3src((dc), OP_insertq, (d), (r), (i1), (i2)) |
| #define | INSTR_CREATE_rdtsc(dc) instr_create_2dst_0src((dc), OP_rdtsc, opnd_create_reg(REG_EDX), opnd_create_reg(REG_EAX)) |
| #define | INSTR_CREATE_pop(dc, d) |
| #define | INSTR_CREATE_fxch(dc, f) |
| #define | INSTR_CREATE_call(dc, t) |
| #define | INSTR_CREATE_call_ind(dc, t) |
| #define | INSTR_CREATE_call_far(dc, t) |
| #define | INSTR_CREATE_call_far_ind(dc, t) |
| #define | INSTR_CREATE_push(dc, s) |
| #define | INSTR_CREATE_push_imm(dc, i) |
| #define | INSTR_CREATE_int(dc, i) |
| #define | INSTR_CREATE_cmpxchg8b(dc, d) |
| #define | INSTR_CREATE_enter(dc, i16, i8) |
| #define | INSTR_CREATE_popa(dc) instr_create_popa((dc)) |
No-operand instructions | |
| #define | INSTR_CREATE_fwait(dc) instr_create_0dst_0src((dc), OP_fwait) |
| #define | INSTR_CREATE_hlt(dc) instr_create_0dst_0src((dc), OP_hlt) |
| #define | INSTR_CREATE_cmc(dc) instr_create_0dst_0src((dc), OP_cmc) |
| #define | INSTR_CREATE_clc(dc) instr_create_0dst_0src((dc), OP_clc) |
| #define | INSTR_CREATE_stc(dc) instr_create_0dst_0src((dc), OP_stc) |
| #define | INSTR_CREATE_cli(dc) instr_create_0dst_0src((dc), OP_cli) |
| #define | INSTR_CREATE_sti(dc) instr_create_0dst_0src((dc), OP_sti) |
| #define | INSTR_CREATE_cld(dc) instr_create_0dst_0src((dc), OP_cld) |
| #define | INSTR_CREATE_std(dc) instr_create_0dst_0src((dc), OP_std) |
| #define | INSTR_CREATE_clts(dc) instr_create_0dst_0src((dc), OP_clts) |
| #define | INSTR_CREATE_invd(dc) instr_create_0dst_0src((dc), OP_invd) |
| #define | INSTR_CREATE_wbinvd(dc) instr_create_0dst_0src((dc), OP_wbinvd) |
| #define | INSTR_CREATE_ud2a(dc) instr_create_0dst_0src((dc), OP_ud2a) |
| #define | INSTR_CREATE_emms(dc) instr_create_0dst_0src((dc), OP_emms) |
| #define | INSTR_CREATE_rsm(dc) instr_create_0dst_0src((dc), OP_rsm) |
| #define | INSTR_CREATE_ud2b(dc) instr_create_0dst_0src((dc), OP_ud2b) |
| #define | INSTR_CREATE_lfence(dc) instr_create_0dst_0src((dc), OP_lfence) |
| #define | INSTR_CREATE_mfence(dc) instr_create_0dst_0src((dc), OP_mfence) |
| #define | INSTR_CREATE_sfence(dc) instr_create_0dst_0src((dc), OP_sfence) |
| #define | INSTR_CREATE_nop(dc) instr_create_0dst_0src((dc), OP_nop) |
| #define | INSTR_CREATE_pause(dc) instr_create_0dst_0src((dc), OP_pause) |
| #define | INSTR_CREATE_fnop(dc) instr_create_0dst_0src((dc), OP_fnop) |
| #define | INSTR_CREATE_fdecstp(dc) instr_create_0dst_0src((dc), OP_fdecstp) |
| #define | INSTR_CREATE_fincstp(dc) instr_create_0dst_0src((dc), OP_fincstp) |
| #define | INSTR_CREATE_fnclex(dc) instr_create_0dst_0src((dc), OP_fnclex) |
| #define | INSTR_CREATE_fninit(dc) instr_create_0dst_0src((dc), OP_fninit) |
| #define | INSTR_CREATE_sysret(dc) instr_create_0dst_0src((dc), OP_sysret) |
| #define | INSTR_CREATE_femms(dc) instr_create_0dst_0src((dc), OP_femms) |
| #define | INSTR_CREATE_swapgs(dc) instr_create_0dst_0src((dc), OP_swapgs) |
| #define | INSTR_CREATE_vmcall(dc) instr_create_0dst_0src((dc), OP_vmcall) |
| #define | INSTR_CREATE_vmlaunch(dc) instr_create_0dst_0src((dc), OP_vmlaunch) |
| #define | INSTR_CREATE_vmresume(dc) instr_create_0dst_0src((dc), OP_vmresume) |
| #define | INSTR_CREATE_vmxoff(dc) instr_create_0dst_0src((dc), OP_vmxoff) |
Direct unconditional jump | |
| #define | INSTR_CREATE_jmp(dc, t) instr_create_0dst_1src((dc), OP_jmp, (t)) |
| #define | INSTR_CREATE_jmp_short(dc, t) instr_create_0dst_1src((dc), OP_jmp_short, (t)) |
One explicit source | |
| #define | INSTR_CREATE_lldt(dc, s) instr_create_0dst_1src((dc), OP_lldt, (s)) |
| #define | INSTR_CREATE_ltr(dc, s) instr_create_0dst_1src((dc), OP_ltr, (s)) |
| #define | INSTR_CREATE_verr(dc, s) instr_create_0dst_1src((dc), OP_verr, (s)) |
| #define | INSTR_CREATE_verw(dc, s) instr_create_0dst_1src((dc), OP_verw, (s)) |
| #define | INSTR_CREATE_vmptrld(dc, s) instr_create_0dst_1src((dc), OP_vmptrld, (s)) |
| #define | INSTR_CREATE_vmxon(dc, s) instr_create_0dst_1src((dc), OP_vmxon, (s)) |
| #define | INSTR_CREATE_lgdt(dc, s) instr_create_0dst_1src((dc), OP_lgdt, (s)) |
| #define | INSTR_CREATE_lidt(dc, s) instr_create_0dst_1src((dc), OP_lidt, (s)) |
| #define | INSTR_CREATE_lmsw(dc, s) instr_create_0dst_1src((dc), OP_lmsw, (s)) |
| #define | INSTR_CREATE_invlpg(dc, s) instr_create_0dst_1src((dc), OP_invlpg, (s)) |
| #define | INSTR_CREATE_fxrstor(dc, s) instr_create_0dst_1src((dc), OP_fxrstor, (s)) |
| #define | INSTR_CREATE_ldmxcsr(dc, s) instr_create_0dst_1src((dc), OP_ldmxcsr, (s)) |
| #define | INSTR_CREATE_nop_modrm(dc, s) instr_create_0dst_1src((dc), OP_nop_modrm, (s)) |
Prefetch | |
| #define | INSTR_CREATE_prefetchnta(dc, s) instr_create_0dst_1src((dc), OP_prefetchnta, (s)) |
| #define | INSTR_CREATE_prefetcht0(dc, s) instr_create_0dst_1src((dc), OP_prefetcht0, (s)) |
| #define | INSTR_CREATE_prefetcht1(dc, s) instr_create_0dst_1src((dc), OP_prefetcht1, (s)) |
| #define | INSTR_CREATE_prefetcht2(dc, s) instr_create_0dst_1src((dc), OP_prefetcht2, (s)) |
| #define | INSTR_CREATE_prefetch(dc, s) instr_create_0dst_1src((dc), OP_prefetch, (s)) |
| #define | INSTR_CREATE_prefetchw(dc, s) instr_create_0dst_1src((dc), OP_prefetchw, (s)) |
One implicit source | |
| #define | INSTR_CREATE_fxam(dc) instr_create_0dst_1src((dc), OP_fxam, opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_sahf(dc) instr_create_0dst_1src((dc), OP_sahf, opnd_create_reg(REG_AH)) |
No destination, 2 explicit sources | |
| #define | INSTR_CREATE_cmp(dc, s1, s2) instr_create_0dst_2src((dc), OP_cmp, (s1), (s2)) |
| #define | INSTR_CREATE_test(dc, s1, s2) instr_create_0dst_2src((dc), OP_test, (s1), (s2)) |
| #define | INSTR_CREATE_ptest(dc, s1, s2) instr_create_0dst_2src((dc), OP_ptest, (s1), (s2)) |
| #define | INSTR_CREATE_bound(dc, s1, s2) instr_create_0dst_2src((dc), OP_bound, (s1), (s2)) |
| #define | INSTR_CREATE_bt(dc, s, ri) instr_create_0dst_2src((dc), OP_bt, (s), (ri)) |
| #define | INSTR_CREATE_ucomiss(dc, s1, s2) instr_create_0dst_2src((dc), OP_ucomiss, (s1), (s2)) |
| #define | INSTR_CREATE_ucomisd(dc, s1, s2) instr_create_0dst_2src((dc), OP_ucomisd, (s1), (s2)) |
| #define | INSTR_CREATE_comiss(dc, s1, s2) instr_create_0dst_2src((dc), OP_comiss, (s1), (s2)) |
| #define | INSTR_CREATE_comisd(dc, s1, s2) instr_create_0dst_2src((dc), OP_comisd, (s1), (s2)) |
No destination, 2 sources | |
| #define | INSTR_CREATE_out_1(dc) instr_create_0dst_2src((dc), OP_out, opnd_create_reg(REG_AL), opnd_create_reg(REG_DX)) |
| #define | INSTR_CREATE_out_4(dc) instr_create_0dst_2src((dc), OP_out, opnd_create_reg(REG_EAX), opnd_create_reg(REG_DX)) |
No destination, explicit immed source | |
| #define | INSTR_CREATE_out_1_imm(dc, i) instr_create_0dst_2src((dc), OP_out, (i), opnd_create_reg(REG_AL)) |
| #define | INSTR_CREATE_out_4_imm(dc, i) instr_create_0dst_2src((dc), OP_out, (i), opnd_create_reg(REG_EAX)) |
No destination, 2 implicit sources | |
| #define | INSTR_CREATE_mwait(dc) |
| #define | INSTR_CREATE_wrmsr(dc) |
| #define | INSTR_CREATE_monitor(dc) |
Floating-point with source of memory or fp register | |
| #define | INSTR_CREATE_fcom(dc, s) instr_create_0dst_2src((dc), OP_fcom, (s), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fcomp(dc, s) instr_create_0dst_2src((dc), OP_fcomp, (s), opnd_create_reg(REG_ST0)) |
Floating-point with fp register source | |
| #define | INSTR_CREATE_fcomi(dc, f) instr_create_0dst_2src((dc), OP_fcomi, opnd_create_reg(REG_ST0), (f)) |
| #define | INSTR_CREATE_fcomip(dc, f) instr_create_0dst_2src((dc), OP_fcomip, opnd_create_reg(REG_ST0), (f)) |
| #define | INSTR_CREATE_fucomi(dc, f) instr_create_0dst_2src((dc), OP_fucomi, opnd_create_reg(REG_ST0), (f)) |
| #define | INSTR_CREATE_fucomip(dc, f) instr_create_0dst_2src((dc), OP_fucomip, opnd_create_reg(REG_ST0), (f)) |
| #define | INSTR_CREATE_fucom(dc, f) instr_create_0dst_2src((dc), OP_fucom, opnd_create_reg(REG_ST0), (f)) |
| #define | INSTR_CREATE_fucomp(dc, f) instr_create_0dst_2src((dc), OP_fucomp, opnd_create_reg(REG_ST0), (f)) |
Floating-point with no explicit sources | |
| #define | INSTR_CREATE_fucompp(dc) instr_create_0dst_2src((dc), OP_fucompp, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1)) |
| #define | INSTR_CREATE_fcompp(dc) instr_create_0dst_2src((dc), OP_fcompp, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1)) |
1 explicit destination, no sources | |
| #define | INSTR_CREATE_sldt(dc, d) instr_create_1dst_0src((dc), OP_sldt, (d)) |
| #define | INSTR_CREATE_str(dc, d) instr_create_1dst_0src((dc), OP_str, (d)) |
| #define | INSTR_CREATE_vmptrst(dc, d) instr_create_1dst_0src((dc), OP_vmptrst, (d)) |
| #define | INSTR_CREATE_vmclear(dc, d) instr_create_1dst_0src((dc), OP_vmclear, (d)) |
| #define | INSTR_CREATE_sgdt(dc, d) instr_create_1dst_0src((dc), OP_sgdt, (d)) |
| #define | INSTR_CREATE_sidt(dc, d) instr_create_1dst_0src((dc), OP_sidt, (d)) |
| #define | INSTR_CREATE_smsw(dc, d) instr_create_1dst_0src((dc), OP_smsw, (d)) |
| #define | INSTR_CREATE_fxsave(dc, d) instr_create_1dst_0src((dc), OP_fxsave, (d)) |
| #define | INSTR_CREATE_stmxcsr(dc, d) instr_create_1dst_0src((dc), OP_stmxcsr, (d)) |
Floating-point with memory destination | |
| #define | INSTR_CREATE_fnstenv(dc, m) instr_create_1dst_0src((dc), OP_fnstenv, (m)) |
| #define | INSTR_CREATE_fnstcw(dc, m) instr_create_1dst_0src((dc), OP_fnstcw, (m)) |
| #define | INSTR_CREATE_fnsave(dc, m) instr_create_1dst_0src((dc), OP_fnsave, (m)) |
| #define | INSTR_CREATE_fnstsw(dc, m) instr_create_1dst_0src((dc), OP_fnstsw, (m)) |
1 implicit destination, no sources | |
| #define | INSTR_CREATE_lahf(dc) instr_create_1dst_0src((dc), OP_lahf, opnd_create_reg(REG_AH)) |
| #define | INSTR_CREATE_sysenter(dc) instr_create_1dst_0src((dc), OP_sysenter, opnd_create_reg(REG_XSP)) |
| #define | INSTR_CREATE_sysexit(dc) instr_create_1dst_0src((dc), OP_sysexit, opnd_create_reg(REG_XSP)) |
| #define | INSTR_CREATE_syscall(dc) instr_create_1dst_0src((dc), OP_syscall, opnd_create_reg(REG_XCX)) |
| #define | INSTR_CREATE_salc(dc) instr_create_1dst_0src((dc), OP_salc, opnd_create_reg(REG_AL)) |
1 destination, 1 source | |
| #define | INSTR_CREATE_arpl(dc, d, s) instr_create_1dst_1src((dc), OP_arpl, (d), (s)) |
| #define | INSTR_CREATE_lea(dc, d, s) instr_create_1dst_1src((dc), OP_lea, (d), (s)) |
| #define | INSTR_CREATE_mov_ld(dc, d, s) instr_create_1dst_1src((dc), OP_mov_ld, (d), (s)) |
| #define | INSTR_CREATE_mov_st(dc, d, s) instr_create_1dst_1src((dc), OP_mov_st, (d), (s)) |
| #define | INSTR_CREATE_mov_imm(dc, d, s) instr_create_1dst_1src((dc), OP_mov_imm, (d), (s)) |
| #define | INSTR_CREATE_mov_seg(dc, d, s) instr_create_1dst_1src((dc), OP_mov_seg, (d), (s)) |
| #define | INSTR_CREATE_mov_priv(dc, d, s) instr_create_1dst_1src((dc), OP_mov_priv, (d), (s)) |
| #define | INSTR_CREATE_lar(dc, d, s) instr_create_1dst_1src((dc), OP_lar, (d), (s)) |
| #define | INSTR_CREATE_lsl(dc, d, s) instr_create_1dst_1src((dc), OP_lsl, (d), (s)) |
| #define | INSTR_CREATE_movntps(dc, d, s) instr_create_1dst_1src((dc), OP_movntps, (d), (s)) |
| #define | INSTR_CREATE_movntpd(dc, d, s) instr_create_1dst_1src((dc), OP_movntpd, (d), (s)) |
| #define | INSTR_CREATE_movd(dc, d, s) instr_create_1dst_1src((dc), OP_movd, (d), (s)) |
| #define | INSTR_CREATE_movq(dc, d, s) instr_create_1dst_1src((dc), OP_movq, (d), (s)) |
| #define | INSTR_CREATE_movdqu(dc, d, s) instr_create_1dst_1src((dc), OP_movdqu, (d), (s)) |
| #define | INSTR_CREATE_movdqa(dc, d, s) instr_create_1dst_1src((dc), OP_movdqa, (d), (s)) |
| #define | INSTR_CREATE_movzx(dc, d, s) instr_create_1dst_1src((dc), OP_movzx, (d), (s)) |
| #define | INSTR_CREATE_movsx(dc, d, s) instr_create_1dst_1src((dc), OP_movsx, (d), (s)) |
| #define | INSTR_CREATE_bsf(dc, d, s) instr_create_1dst_1src((dc), OP_bsf, (d), (s)) |
| #define | INSTR_CREATE_bsr(dc, d, s) instr_create_1dst_1src((dc), OP_bsr, (d), (s)) |
| #define | INSTR_CREATE_pmovmskb(dc, d, s) instr_create_1dst_1src((dc), OP_pmovmskb, (d), (s)) |
| #define | INSTR_CREATE_movups(dc, d, s) instr_create_1dst_1src((dc), OP_movups, (d), (s)) |
| #define | INSTR_CREATE_movss(dc, d, s) instr_create_1dst_1src((dc), OP_movss, (d), (s)) |
| #define | INSTR_CREATE_movupd(dc, d, s) instr_create_1dst_1src((dc), OP_movupd, (d), (s)) |
| #define | INSTR_CREATE_movsd(dc, d, s) instr_create_1dst_1src((dc), OP_movsd, (d), (s)) |
| #define | INSTR_CREATE_movlps(dc, d, s) instr_create_1dst_1src((dc), OP_movlps, (d), (s)) |
| #define | INSTR_CREATE_movlpd(dc, d, s) instr_create_1dst_1src((dc), OP_movlpd, (d), (s)) |
| #define | INSTR_CREATE_movhps(dc, d, s) instr_create_1dst_1src((dc), OP_movhps, (d), (s)) |
| #define | INSTR_CREATE_movhpd(dc, d, s) instr_create_1dst_1src((dc), OP_movhpd, (d), (s)) |
| #define | INSTR_CREATE_movaps(dc, d, s) instr_create_1dst_1src((dc), OP_movaps, (d), (s)) |
| #define | INSTR_CREATE_movapd(dc, d, s) instr_create_1dst_1src((dc), OP_movapd, (d), (s)) |
| #define | INSTR_CREATE_cvtpi2ps(dc, d, s) instr_create_1dst_1src((dc), OP_cvtpi2ps, (d), (s)) |
| #define | INSTR_CREATE_cvtsi2ss(dc, d, s) instr_create_1dst_1src((dc), OP_cvtsi2ss, (d), (s)) |
| #define | INSTR_CREATE_cvtpi2pd(dc, d, s) instr_create_1dst_1src((dc), OP_cvtpi2pd, (d), (s)) |
| #define | INSTR_CREATE_cvtsi2sd(dc, d, s) instr_create_1dst_1src((dc), OP_cvtsi2sd, (d), (s)) |
| #define | INSTR_CREATE_cvttps2pi(dc, d, s) instr_create_1dst_1src((dc), OP_cvttps2pi, (d), (s)) |
| #define | INSTR_CREATE_cvttss2si(dc, d, s) instr_create_1dst_1src((dc), OP_cvttss2si, (d), (s)) |
| #define | INSTR_CREATE_cvttpd2pi(dc, d, s) instr_create_1dst_1src((dc), OP_cvttpd2pi, (d), (s)) |
| #define | INSTR_CREATE_cvttsd2si(dc, d, s) instr_create_1dst_1src((dc), OP_cvttsd2si, (d), (s)) |
| #define | INSTR_CREATE_cvtps2pi(dc, d, s) instr_create_1dst_1src((dc), OP_cvtps2pi, (d), (s)) |
| #define | INSTR_CREATE_cvtss2si(dc, d, s) instr_create_1dst_1src((dc), OP_cvtss2si, (d), (s)) |
| #define | INSTR_CREATE_cvtpd2pi(dc, d, s) instr_create_1dst_1src((dc), OP_cvtpd2pi, (d), (s)) |
| #define | INSTR_CREATE_cvtsd2si(dc, d, s) instr_create_1dst_1src((dc), OP_cvtsd2si, (d), (s)) |
| #define | INSTR_CREATE_cvtps2pd(dc, d, s) instr_create_1dst_1src((dc), OP_cvtps2pd, (d), (s)) |
| #define | INSTR_CREATE_cvtss2sd(dc, d, s) instr_create_1dst_1src((dc), OP_cvtss2sd, (d), (s)) |
| #define | INSTR_CREATE_cvtpd2ps(dc, d, s) instr_create_1dst_1src((dc), OP_cvtpd2ps, (d), (s)) |
| #define | INSTR_CREATE_cvtsd2ss(dc, d, s) instr_create_1dst_1src((dc), OP_cvtsd2ss, (d), (s)) |
| #define | INSTR_CREATE_cvtdq2ps(dc, d, s) instr_create_1dst_1src((dc), OP_cvtdq2ps, (d), (s)) |
| #define | INSTR_CREATE_cvttps2dq(dc, d, s) instr_create_1dst_1src((dc), OP_cvttps2dq, (d), (s)) |
| #define | INSTR_CREATE_cvtps2dq(dc, d, s) instr_create_1dst_1src((dc), OP_cvtps2dq, (d), (s)) |
| #define | INSTR_CREATE_cvtdq2pd(dc, d, s) instr_create_1dst_1src((dc), OP_cvtdq2pd, (d), (s)) |
| #define | INSTR_CREATE_cvttpd2dq(dc, d, s) instr_create_1dst_1src((dc), OP_cvttpd2dq, (d), (s)) |
| #define | INSTR_CREATE_cvtpd2dq(dc, d, s) instr_create_1dst_1src((dc), OP_cvtpd2dq, (d), (s)) |
| #define | INSTR_CREATE_movmskps(dc, d, s) instr_create_1dst_1src((dc), OP_movmskps, (d), (s)) |
| #define | INSTR_CREATE_movmskpd(dc, d, s) instr_create_1dst_1src((dc), OP_movmskpd, (d), (s)) |
| #define | INSTR_CREATE_sqrtps(dc, d, s) instr_create_1dst_1src((dc), OP_sqrtps, (d), (s)) |
| #define | INSTR_CREATE_sqrtss(dc, d, s) instr_create_1dst_1src((dc), OP_sqrtss, (d), (s)) |
| #define | INSTR_CREATE_sqrtpd(dc, d, s) instr_create_1dst_1src((dc), OP_sqrtpd, (d), (s)) |
| #define | INSTR_CREATE_sqrtsd(dc, d, s) instr_create_1dst_1src((dc), OP_sqrtsd, (d), (s)) |
| #define | INSTR_CREATE_rsqrtps(dc, d, s) instr_create_1dst_1src((dc), OP_rsqrtps, (d), (s)) |
| #define | INSTR_CREATE_rsqrtss(dc, d, s) instr_create_1dst_1src((dc), OP_rsqrtss, (d), (s)) |
| #define | INSTR_CREATE_rcpps(dc, d, s) instr_create_1dst_1src((dc), OP_rcpps, (d), (s)) |
| #define | INSTR_CREATE_rcpss(dc, d, s) instr_create_1dst_1src((dc), OP_rcpss, (d), (s)) |
| #define | INSTR_CREATE_lddqu(dc, d, s) instr_create_1dst_1src((dc), OP_lddqu, (d), (s)) |
| #define | INSTR_CREATE_movsldup(dc, d, s) instr_create_1dst_1src((dc), OP_movsldup, (d), (s)) |
| #define | INSTR_CREATE_movshdup(dc, d, s) instr_create_1dst_1src((dc), OP_movshdup, (d), (s)) |
| #define | INSTR_CREATE_movddup(dc, d, s) instr_create_1dst_1src((dc), OP_movddup, (d), (s)) |
| #define | INSTR_CREATE_pshufb(dc, d, s) instr_create_1dst_1src((dc), OP_pshufb, (d), (s)) |
| #define | INSTR_CREATE_popcnt(dc, d, s) instr_create_1dst_1src((dc), OP_popcnt, (d), (s)) |
| #define | INSTR_CREATE_movntss(dc, d, s) instr_create_1dst_1src((dc), OP_movntss, (d), (s)) |
| #define | INSTR_CREATE_movntsd(dc, d, s) instr_create_1dst_1src((dc), OP_movntsd, (d), (s)) |
| #define | INSTR_CREATE_movntq(dc, d, s) instr_create_1dst_1src((dc), OP_movntq, (d), (s)) |
| #define | INSTR_CREATE_movntdq(dc, d, s) instr_create_1dst_1src((dc), OP_movntdq, (d), (s)) |
| #define | INSTR_CREATE_movnti(dc, d, s) instr_create_1dst_1src((dc), OP_movnti, (d), (s)) |
| #define | INSTR_CREATE_lzcnt(dc, d, s) instr_create_1dst_1src((dc), OP_lzcnt, (d), (s)) |
| #define | INSTR_CREATE_pmovsxbw(dc, d, s) instr_create_1dst_1src((dc), OP_pmovsxbw, (d), (s)) |
| #define | INSTR_CREATE_pmovsxbd(dc, d, s) instr_create_1dst_1src((dc), OP_pmovsxbd, (d), (s)) |
| #define | INSTR_CREATE_pmovsxbq(dc, d, s) instr_create_1dst_1src((dc), OP_pmovsxbq, (d), (s)) |
| #define | INSTR_CREATE_pmovsxdw(dc, d, s) instr_create_1dst_1src((dc), OP_pmovsxdw, (d), (s)) |
| #define | INSTR_CREATE_pmovsxwq(dc, d, s) instr_create_1dst_1src((dc), OP_pmovsxwq, (d), (s)) |
| #define | INSTR_CREATE_pmovsxdq(dc, d, s) instr_create_1dst_1src((dc), OP_pmovsxdq, (d), (s)) |
| #define | INSTR_CREATE_movntdqa(dc, d, s) instr_create_1dst_1src((dc), OP_movntdqa, (d), (s)) |
| #define | INSTR_CREATE_pmovzxbw(dc, d, s) instr_create_1dst_1src((dc), OP_pmovzxbw, (d), (s)) |
| #define | INSTR_CREATE_pmovzxbd(dc, d, s) instr_create_1dst_1src((dc), OP_pmovzxbd, (d), (s)) |
| #define | INSTR_CREATE_pmovzxbq(dc, d, s) instr_create_1dst_1src((dc), OP_pmovzxbq, (d), (s)) |
| #define | INSTR_CREATE_pmovzxdw(dc, d, s) instr_create_1dst_1src((dc), OP_pmovzxdw, (d), (s)) |
| #define | INSTR_CREATE_pmovzxwq(dc, d, s) instr_create_1dst_1src((dc), OP_pmovzxwq, (d), (s)) |
| #define | INSTR_CREATE_pmovzxdq(dc, d, s) instr_create_1dst_1src((dc), OP_pmovzxdq, (d), (s)) |
| #define | INSTR_CREATE_phminposuw(dc, d, s) instr_create_1dst_1src((dc), OP_phminposuw, (d), (s)) |
| #define | INSTR_CREATE_vmread(dc, d, s) instr_create_1dst_1src((dc), OP_vmread, (d), (s)) |
| #define | INSTR_CREATE_vmwrite(dc, d, s) instr_create_1dst_1src((dc), OP_vmwrite, (d), (s)) |
| #define | INSTR_CREATE_movsxd(dc, d, s) instr_create_1dst_1src((dc), OP_movsxd, (d), (s)) |
1 destination, 1 implicit source | |
| #define | INSTR_CREATE_inc(dc, d) instr_create_1dst_1src((dc), OP_inc, (d), (d)) |
| #define | INSTR_CREATE_dec(dc, d) instr_create_1dst_1src((dc), OP_dec, (d), (d)) |
| #define | INSTR_CREATE_bswap(dc, d) instr_create_1dst_1src((dc), OP_bswap, (d), (d)) |
| #define | INSTR_CREATE_not(dc, d) instr_create_1dst_1src((dc), OP_not, (d), (d)) |
| #define | INSTR_CREATE_neg(dc, d) instr_create_1dst_1src((dc), OP_neg, (d), (d)) |
1 implicit destination, 1 implicit source | |
| #define | INSTR_CREATE_cdq(dc) instr_create_1dst_1src((dc), OP_cdq, opnd_create_reg(REG_EDX), opnd_create_reg(REG_EAX)) |
| #define | INSTR_CREATE_daa(dc) instr_create_1dst_1src((dc), OP_daa, opnd_create_reg(REG_AL), opnd_create_reg(REG_AL)) |
| #define | INSTR_CREATE_das(dc) instr_create_1dst_1src((dc), OP_das, opnd_create_reg(REG_AL), opnd_create_reg(REG_AL)) |
| #define | INSTR_CREATE_aaa(dc) instr_create_1dst_1src((dc), OP_aaa, opnd_create_reg(REG_AX), opnd_create_reg(REG_AX)) |
| #define | INSTR_CREATE_aas(dc) instr_create_1dst_1src((dc), OP_aas, opnd_create_reg(REG_AX), opnd_create_reg(REG_AX)) |
| #define | INSTR_CREATE_cwde(dc) instr_create_1dst_1src((dc), OP_cwde, opnd_create_reg(REG_EAX), opnd_create_reg(REG_AX)) |
| #define | INSTR_CREATE_xlat(dc) |
In with no explicit sources | |
| #define | INSTR_CREATE_in_1(dc) instr_create_1dst_1src((dc), OP_in, opnd_create_reg(REG_AL), opnd_create_reg(REG_DX)) |
| #define | INSTR_CREATE_in_4(dc) instr_create_1dst_1src((dc), OP_in, opnd_create_reg(REG_EAX), opnd_create_reg(REG_DX)) |
In with explicit source | |
| #define | INSTR_CREATE_in_1_imm(dc, i) instr_create_1dst_1src((dc), OP_in, opnd_create_reg(REG_AL), (i)) |
| #define | INSTR_CREATE_in_4_imm(dc, i) instr_create_1dst_1src((dc), OP_in, opnd_create_reg(REG_EAX), (i)) |
Floating point with destination that is memory or fp register | |
| #define | INSTR_CREATE_fst(dc, d) instr_create_1dst_1src((dc), OP_fst, (d), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fstp(dc, d) instr_create_1dst_1src((dc), OP_fstp, (d), opnd_create_reg(REG_ST0)) |
Floating-point with memory destination and implicit source | |
| #define | INSTR_CREATE_fist(dc, m) instr_create_1dst_1src((dc), OP_fist, (m), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fistp(dc, m) instr_create_1dst_1src((dc), OP_fistp, (m), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fisttp(dc, m) instr_create_1dst_1src((dc), OP_fisttp, (m), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fbstp(dc, m) instr_create_1dst_1src((dc), OP_fbstp, (m), opnd_create_reg(REG_ST0)) |
Floating-point with memory source | |
| #define | INSTR_CREATE_fild(dc, m) instr_create_1dst_1src((dc), OP_fild, opnd_create_reg(REG_ST0), (m)) |
| #define | INSTR_CREATE_fbld(dc, m) instr_create_1dst_1src((dc), OP_fbld, opnd_create_reg(REG_ST0), (m)) |
Floating-point implicit destination and implicit source | |
| #define | INSTR_CREATE_fchs(dc) instr_create_1dst_1src((dc), OP_fchs, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fabs(dc) instr_create_1dst_1src((dc), OP_fabs, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_ftst(dc) instr_create_1dst_1src((dc), OP_ftst, opnd_create_reg(REG_ST0), opnd_create_immed_float(0.0f)) |
| #define | INSTR_CREATE_fld1(dc) instr_create_1dst_1src((dc), OP_fld1, opnd_create_reg(REG_ST0), opnd_create_immed_float(1.0f)) |
| #define | INSTR_CREATE_fldl2t(dc) |
| #define | INSTR_CREATE_fldl2e(dc) |
| #define | INSTR_CREATE_fldpi(dc) |
| #define | INSTR_CREATE_fldlg2(dc) |
| #define | INSTR_CREATE_fldln2(dc) |
| #define | INSTR_CREATE_fldz(dc) instr_create_1dst_1src((dc), OP_fldz, opnd_create_reg(REG_ST0), opnd_create_immed_float(0.0f)) |
| #define | INSTR_CREATE_f2xm1(dc) instr_create_1dst_1src((dc), OP_f2xm1, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fptan(dc) instr_create_1dst_1src((dc), OP_fptan, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fxtract(dc) instr_create_1dst_1src((dc), OP_fxtract, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fsqrt(dc) instr_create_1dst_1src((dc), OP_fsqrt, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fsincos(dc) instr_create_1dst_1src((dc), OP_fsincos, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_frndint(dc) instr_create_1dst_1src((dc), OP_frndint, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fsin(dc) instr_create_1dst_1src((dc), OP_fsin, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fcos(dc) instr_create_1dst_1src((dc), OP_fcos, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fscale(dc) |
| #define | INSTR_CREATE_fyl2x(dc) |
| #define | INSTR_CREATE_fyl2xp1(dc) |
| #define | INSTR_CREATE_fpatan(dc) |
| #define | INSTR_CREATE_fprem(dc) |
| #define | INSTR_CREATE_fprem1(dc) |
1 destination, 2 sources | |
| #define | INSTR_CREATE_pshufw(dc, d, s, i) instr_create_1dst_2src((dc), OP_pshufw, (d), (s), (i)) |
| #define | INSTR_CREATE_pshufd(dc, d, s, i) instr_create_1dst_2src((dc), OP_pshufd, (d), (s), (i)) |
| #define | INSTR_CREATE_pshufhw(dc, d, s, i) instr_create_1dst_2src((dc), OP_pshufhw, (d), (s), (i)) |
| #define | INSTR_CREATE_pshuflw(dc, d, s, i) instr_create_1dst_2src((dc), OP_pshuflw, (d), (s), (i)) |
| #define | INSTR_CREATE_pinsrw(dc, d, s, i) instr_create_1dst_2src((dc), OP_pinsrw, (d), (s), (i)) |
| #define | INSTR_CREATE_pextrw(dc, d, s, i) instr_create_1dst_2src((dc), OP_pextrw, (d), (s), (i)) |
| #define | INSTR_CREATE_pextrb(dc, d, s, i) instr_create_1dst_2src((dc), OP_pextrb, (d), (s), (i)) |
| #define | INSTR_CREATE_pextrd(dc, d, s, i) instr_create_1dst_2src((dc), OP_pextrd, (d), (s), (i)) |
| #define | INSTR_CREATE_extractps(dc, d, s, i) instr_create_1dst_2src((dc), OP_extractps, (d), (s), (i)) |
| #define | INSTR_CREATE_roundps(dc, d, s, i) instr_create_1dst_2src((dc), OP_roundps, (d), (s), (i)) |
| #define | INSTR_CREATE_roundpd(dc, d, s, i) instr_create_1dst_2src((dc), OP_roundpd, (d), (s), (i)) |
| #define | INSTR_CREATE_roundss(dc, d, s, i) instr_create_1dst_2src((dc), OP_roundss, (d), (s), (i)) |
| #define | INSTR_CREATE_roundsd(dc, d, s, i) instr_create_1dst_2src((dc), OP_roundsd, (d), (s), (i)) |
| #define | INSTR_CREATE_blendps(dc, d, s, i) instr_create_1dst_2src((dc), OP_blendps, (d), (s), (i)) |
| #define | INSTR_CREATE_blendpd(dc, d, s, i) instr_create_1dst_2src((dc), OP_blendpd, (d), (s), (i)) |
| #define | INSTR_CREATE_pblendw(dc, d, s, i) instr_create_1dst_2src((dc), OP_pblendw, (d), (s), (i)) |
| #define | INSTR_CREATE_pinsrb(dc, d, s, i) instr_create_1dst_2src((dc), OP_pinsrb, (d), (s), (i)) |
| #define | INSTR_CREATE_insertps(dc, d, s, i) instr_create_1dst_2src((dc), OP_insertps, (d), (s), (i)) |
| #define | INSTR_CREATE_pinsrd(dc, d, s, i) instr_create_1dst_2src((dc), OP_pinsrd, (d), (s), (i)) |
1 destination, 2 sources: 1 explicit, 1 implicit | |
| #define | INSTR_CREATE_add(dc, d, s) instr_create_1dst_2src((dc), OP_add, (d), (s), (d)) |
| #define | INSTR_CREATE_or(dc, d, s) instr_create_1dst_2src((dc), OP_or, (d), (s), (d)) |
| #define | INSTR_CREATE_adc(dc, d, s) instr_create_1dst_2src((dc), OP_adc, (d), (s), (d)) |
| #define | INSTR_CREATE_sbb(dc, d, s) instr_create_1dst_2src((dc), OP_sbb, (d), (s), (d)) |
| #define | INSTR_CREATE_and(dc, d, s) instr_create_1dst_2src((dc), OP_and, (d), (s), (d)) |
| #define | INSTR_CREATE_sub(dc, d, s) instr_create_1dst_2src((dc), OP_sub, (d), (s), (d)) |
| #define | INSTR_CREATE_xor(dc, d, s) instr_create_1dst_2src((dc), OP_xor, (d), (s), (d)) |
| #define | INSTR_CREATE_punpcklbw(dc, d, s) instr_create_1dst_2src((dc), OP_punpcklbw, (d), (s), (d)) |
| #define | INSTR_CREATE_punpcklwd(dc, d, s) instr_create_1dst_2src((dc), OP_punpcklwd, (d), (s), (d)) |
| #define | INSTR_CREATE_punpckldq(dc, d, s) instr_create_1dst_2src((dc), OP_punpckldq, (d), (s), (d)) |
| #define | INSTR_CREATE_packsswb(dc, d, s) instr_create_1dst_2src((dc), OP_packsswb, (d), (s), (d)) |
| #define | INSTR_CREATE_pcmpgtb(dc, d, s) instr_create_1dst_2src((dc), OP_pcmpgtb, (d), (s), (d)) |
| #define | INSTR_CREATE_pcmpgtw(dc, d, s) instr_create_1dst_2src((dc), OP_pcmpgtw, (d), (s), (d)) |
| #define | INSTR_CREATE_pcmpgtd(dc, d, s) instr_create_1dst_2src((dc), OP_pcmpgtd, (d), (s), (d)) |
| #define | INSTR_CREATE_packuswb(dc, d, s) instr_create_1dst_2src((dc), OP_packuswb, (d), (s), (d)) |
| #define | INSTR_CREATE_punpckhbw(dc, d, s) instr_create_1dst_2src((dc), OP_punpckhbw, (d), (s), (d)) |
| #define | INSTR_CREATE_punpckhwd(dc, d, s) instr_create_1dst_2src((dc), OP_punpckhwd, (d), (s), (d)) |
| #define | INSTR_CREATE_punpckhdq(dc, d, s) instr_create_1dst_2src((dc), OP_punpckhdq, (d), (s), (d)) |
| #define | INSTR_CREATE_packssdw(dc, d, s) instr_create_1dst_2src((dc), OP_packssdw, (d), (s), (d)) |
| #define | INSTR_CREATE_punpcklqdq(dc, d, s) instr_create_1dst_2src((dc), OP_punpcklqdq, (d), (s), (d)) |
| #define | INSTR_CREATE_punpckhqdq(dc, d, s) instr_create_1dst_2src((dc), OP_punpckhqdq, (d), (s), (d)) |
| #define | INSTR_CREATE_pcmpeqb(dc, d, s) instr_create_1dst_2src((dc), OP_pcmpeqb, (d), (s), (d)) |
| #define | INSTR_CREATE_pcmpeqw(dc, d, s) instr_create_1dst_2src((dc), OP_pcmpeqw, (d), (s), (d)) |
| #define | INSTR_CREATE_pcmpeqd(dc, d, s) instr_create_1dst_2src((dc), OP_pcmpeqd, (d), (s), (d)) |
| #define | INSTR_CREATE_psrlw(dc, d, s) instr_create_1dst_2src((dc), OP_psrlw, (d), (s), (d)) |
| #define | INSTR_CREATE_psrld(dc, d, s) instr_create_1dst_2src((dc), OP_psrld, (d), (s), (d)) |
| #define | INSTR_CREATE_psrlq(dc, d, s) instr_create_1dst_2src((dc), OP_psrlq, (d), (s), (d)) |
| #define | INSTR_CREATE_paddq(dc, d, s) instr_create_1dst_2src((dc), OP_paddq, (d), (s), (d)) |
| #define | INSTR_CREATE_pmullw(dc, d, s) instr_create_1dst_2src((dc), OP_pmullw, (d), (s), (d)) |
| #define | INSTR_CREATE_psubusb(dc, d, s) instr_create_1dst_2src((dc), OP_psubusb, (d), (s), (d)) |
| #define | INSTR_CREATE_psubusw(dc, d, s) instr_create_1dst_2src((dc), OP_psubusw, (d), (s), (d)) |
| #define | INSTR_CREATE_pminub(dc, d, s) instr_create_1dst_2src((dc), OP_pminub, (d), (s), (d)) |
| #define | INSTR_CREATE_pand(dc, d, s) instr_create_1dst_2src((dc), OP_pand, (d), (s), (d)) |
| #define | INSTR_CREATE_paddusb(dc, d, s) instr_create_1dst_2src((dc), OP_paddusb, (d), (s), (d)) |
| #define | INSTR_CREATE_paddusw(dc, d, s) instr_create_1dst_2src((dc), OP_paddusw, (d), (s), (d)) |
| #define | INSTR_CREATE_pmaxub(dc, d, s) instr_create_1dst_2src((dc), OP_pmaxub, (d), (s), (d)) |
| #define | INSTR_CREATE_pandn(dc, d, s) instr_create_1dst_2src((dc), OP_pandn, (d), (s), (d)) |
| #define | INSTR_CREATE_pavgb(dc, d, s) instr_create_1dst_2src((dc), OP_pavgb, (d), (s), (d)) |
| #define | INSTR_CREATE_psraw(dc, d, s) instr_create_1dst_2src((dc), OP_psraw, (d), (s), (d)) |
| #define | INSTR_CREATE_psrad(dc, d, s) instr_create_1dst_2src((dc), OP_psrad, (d), (s), (d)) |
| #define | INSTR_CREATE_pavgw(dc, d, s) instr_create_1dst_2src((dc), OP_pavgw, (d), (s), (d)) |
| #define | INSTR_CREATE_pmulhuw(dc, d, s) instr_create_1dst_2src((dc), OP_pmulhuw, (d), (s), (d)) |
| #define | INSTR_CREATE_pmulhw(dc, d, s) instr_create_1dst_2src((dc), OP_pmulhw, (d), (s), (d)) |
| #define | INSTR_CREATE_psubsb(dc, d, s) instr_create_1dst_2src((dc), OP_psubsb, (d), (s), (d)) |
| #define | INSTR_CREATE_psubsw(dc, d, s) instr_create_1dst_2src((dc), OP_psubsw, (d), (s), (d)) |
| #define | INSTR_CREATE_pminsw(dc, d, s) instr_create_1dst_2src((dc), OP_pminsw, (d), (s), (d)) |
| #define | INSTR_CREATE_por(dc, d, s) instr_create_1dst_2src((dc), OP_por, (d), (s), (d)) |
| #define | INSTR_CREATE_paddsb(dc, d, s) instr_create_1dst_2src((dc), OP_paddsb, (d), (s), (d)) |
| #define | INSTR_CREATE_paddsw(dc, d, s) instr_create_1dst_2src((dc), OP_paddsw, (d), (s), (d)) |
| #define | INSTR_CREATE_pmaxsw(dc, d, s) instr_create_1dst_2src((dc), OP_pmaxsw, (d), (s), (d)) |
| #define | INSTR_CREATE_pxor(dc, d, s) instr_create_1dst_2src((dc), OP_pxor, (d), (s), (d)) |
| #define | INSTR_CREATE_psllw(dc, d, s) instr_create_1dst_2src((dc), OP_psllw, (d), (s), (d)) |
| #define | INSTR_CREATE_pslld(dc, d, s) instr_create_1dst_2src((dc), OP_pslld, (d), (s), (d)) |
| #define | INSTR_CREATE_psllq(dc, d, s) instr_create_1dst_2src((dc), OP_psllq, (d), (s), (d)) |
| #define | INSTR_CREATE_pmuludq(dc, d, s) instr_create_1dst_2src((dc), OP_pmuludq, (d), (s), (d)) |
| #define | INSTR_CREATE_pmaddwd(dc, d, s) instr_create_1dst_2src((dc), OP_pmaddwd, (d), (s), (d)) |
| #define | INSTR_CREATE_psadbw(dc, d, s) instr_create_1dst_2src((dc), OP_psadbw, (d), (s), (d)) |
| #define | INSTR_CREATE_psubb(dc, d, s) instr_create_1dst_2src((dc), OP_psubb, (d), (s), (d)) |
| #define | INSTR_CREATE_psubw(dc, d, s) instr_create_1dst_2src((dc), OP_psubw, (d), (s), (d)) |
| #define | INSTR_CREATE_psubd(dc, d, s) instr_create_1dst_2src((dc), OP_psubd, (d), (s), (d)) |
| #define | INSTR_CREATE_psubq(dc, d, s) instr_create_1dst_2src((dc), OP_psubq, (d), (s), (d)) |
| #define | INSTR_CREATE_paddb(dc, d, s) instr_create_1dst_2src((dc), OP_paddb, (d), (s), (d)) |
| #define | INSTR_CREATE_paddw(dc, d, s) instr_create_1dst_2src((dc), OP_paddw, (d), (s), (d)) |
| #define | INSTR_CREATE_paddd(dc, d, s) instr_create_1dst_2src((dc), OP_paddd, (d), (s), (d)) |
| #define | INSTR_CREATE_psrldq(dc, d, s) instr_create_1dst_2src((dc), OP_psrldq, (d), (s), (d)) |
| #define | INSTR_CREATE_pslldq(dc, d, s) instr_create_1dst_2src((dc), OP_pslldq, (d), (s), (d)) |
| #define | INSTR_CREATE_unpcklps(dc, d, s) instr_create_1dst_2src((dc), OP_unpcklps, (d), (s), (d)) |
| #define | INSTR_CREATE_unpcklpd(dc, d, s) instr_create_1dst_2src((dc), OP_unpcklpd, (d), (s), (d)) |
| #define | INSTR_CREATE_unpckhps(dc, d, s) instr_create_1dst_2src((dc), OP_unpckhps, (d), (s), (d)) |
| #define | INSTR_CREATE_unpckhpd(dc, d, s) instr_create_1dst_2src((dc), OP_unpckhpd, (d), (s), (d)) |
| #define | INSTR_CREATE_andps(dc, d, s) instr_create_1dst_2src((dc), OP_andps, (d), (s), (d)) |
| #define | INSTR_CREATE_andpd(dc, d, s) instr_create_1dst_2src((dc), OP_andpd, (d), (s), (d)) |
| #define | INSTR_CREATE_andnps(dc, d, s) instr_create_1dst_2src((dc), OP_andnps, (d), (s), (d)) |
| #define | INSTR_CREATE_andnpd(dc, d, s) instr_create_1dst_2src((dc), OP_andnpd, (d), (s), (d)) |
| #define | INSTR_CREATE_orps(dc, d, s) instr_create_1dst_2src((dc), OP_orps, (d), (s), (d)) |
| #define | INSTR_CREATE_orpd(dc, d, s) instr_create_1dst_2src((dc), OP_orpd, (d), (s), (d)) |
| #define | INSTR_CREATE_xorps(dc, d, s) instr_create_1dst_2src((dc), OP_xorps, (d), (s), (d)) |
| #define | INSTR_CREATE_xorpd(dc, d, s) instr_create_1dst_2src((dc), OP_xorpd, (d), (s), (d)) |
| #define | INSTR_CREATE_addps(dc, d, s) instr_create_1dst_2src((dc), OP_addps, (d), (s), (d)) |
| #define | INSTR_CREATE_addss(dc, d, s) instr_create_1dst_2src((dc), OP_addss, (d), (s), (d)) |
| #define | INSTR_CREATE_addpd(dc, d, s) instr_create_1dst_2src((dc), OP_addpd, (d), (s), (d)) |
| #define | INSTR_CREATE_addsd(dc, d, s) instr_create_1dst_2src((dc), OP_addsd, (d), (s), (d)) |
| #define | INSTR_CREATE_mulps(dc, d, s) instr_create_1dst_2src((dc), OP_mulps, (d), (s), (d)) |
| #define | INSTR_CREATE_mulss(dc, d, s) instr_create_1dst_2src((dc), OP_mulss, (d), (s), (d)) |
| #define | INSTR_CREATE_mulpd(dc, d, s) instr_create_1dst_2src((dc), OP_mulpd, (d), (s), (d)) |
| #define | INSTR_CREATE_mulsd(dc, d, s) instr_create_1dst_2src((dc), OP_mulsd, (d), (s), (d)) |
| #define | INSTR_CREATE_subps(dc, d, s) instr_create_1dst_2src((dc), OP_subps, (d), (s), (d)) |
| #define | INSTR_CREATE_subss(dc, d, s) instr_create_1dst_2src((dc), OP_subss, (d), (s), (d)) |
| #define | INSTR_CREATE_subpd(dc, d, s) instr_create_1dst_2src((dc), OP_subpd, (d), (s), (d)) |
| #define | INSTR_CREATE_subsd(dc, d, s) instr_create_1dst_2src((dc), OP_subsd, (d), (s), (d)) |
| #define | INSTR_CREATE_minps(dc, d, s) instr_create_1dst_2src((dc), OP_minps, (d), (s), (d)) |
| #define | INSTR_CREATE_minss(dc, d, s) instr_create_1dst_2src((dc), OP_minss, (d), (s), (d)) |
| #define | INSTR_CREATE_minpd(dc, d, s) instr_create_1dst_2src((dc), OP_minpd, (d), (s), (d)) |
| #define | INSTR_CREATE_minsd(dc, d, s) instr_create_1dst_2src((dc), OP_minsd, (d), (s), (d)) |
| #define | INSTR_CREATE_divps(dc, d, s) instr_create_1dst_2src((dc), OP_divps, (d), (s), (d)) |
| #define | INSTR_CREATE_divss(dc, d, s) instr_create_1dst_2src((dc), OP_divss, (d), (s), (d)) |
| #define | INSTR_CREATE_divpd(dc, d, s) instr_create_1dst_2src((dc), OP_divpd, (d), (s), (d)) |
| #define | INSTR_CREATE_divsd(dc, d, s) instr_create_1dst_2src((dc), OP_divsd, (d), (s), (d)) |
| #define | INSTR_CREATE_maxps(dc, d, s) instr_create_1dst_2src((dc), OP_maxps, (d), (s), (d)) |
| #define | INSTR_CREATE_maxss(dc, d, s) instr_create_1dst_2src((dc), OP_maxss, (d), (s), (d)) |
| #define | INSTR_CREATE_maxpd(dc, d, s) instr_create_1dst_2src((dc), OP_maxpd, (d), (s), (d)) |
| #define | INSTR_CREATE_maxsd(dc, d, s) instr_create_1dst_2src((dc), OP_maxsd, (d), (s), (d)) |
| #define | INSTR_CREATE_haddpd(dc, d, s) instr_create_1dst_2src((dc), OP_haddpd, (d), (s), (d)) |
| #define | INSTR_CREATE_haddps(dc, d, s) instr_create_1dst_2src((dc), OP_haddps, (d), (s), (d)) |
| #define | INSTR_CREATE_hsubpd(dc, d, s) instr_create_1dst_2src((dc), OP_hsubpd, (d), (s), (d)) |
| #define | INSTR_CREATE_hsubps(dc, d, s) instr_create_1dst_2src((dc), OP_hsubps, (d), (s), (d)) |
| #define | INSTR_CREATE_addsubpd(dc, d, s) instr_create_1dst_2src((dc), OP_addsubpd, (d), (s), (d)) |
| #define | INSTR_CREATE_addsubps(dc, d, s) instr_create_1dst_2src((dc), OP_addsubps, (d), (s), (d)) |
| #define | INSTR_CREATE_pavgusb(dc, d, s) instr_create_1dst_2src((dc), OP_pavgusb, (d), (s), (d)) |
| #define | INSTR_CREATE_pfadd(dc, d, s) instr_create_1dst_2src((dc), OP_pfadd, (d), (s), (d)) |
| #define | INSTR_CREATE_pfacc(dc, d, s) instr_create_1dst_2src((dc), OP_pfacc, (d), (s), (d)) |
| #define | INSTR_CREATE_pfcmpge(dc, d, s) instr_create_1dst_2src((dc), OP_pfcmpge, (d), (s), (d)) |
| #define | INSTR_CREATE_pfcmpgt(dc, d, s) instr_create_1dst_2src((dc), OP_pfcmpgt, (d), (s), (d)) |
| #define | INSTR_CREATE_pfcmpeq(dc, d, s) instr_create_1dst_2src((dc), OP_pfcmpeq, (d), (s), (d)) |
| #define | INSTR_CREATE_pfmin(dc, d, s) instr_create_1dst_2src((dc), OP_pfmin, (d), (s), (d)) |
| #define | INSTR_CREATE_pfmax(dc, d, s) instr_create_1dst_2src((dc), OP_pfmax, (d), (s), (d)) |
| #define | INSTR_CREATE_pfmul(dc, d, s) instr_create_1dst_2src((dc), OP_pfmul, (d), (s), (d)) |
| #define | INSTR_CREATE_pfrcp(dc, d, s) instr_create_1dst_2src((dc), OP_pfrcp, (d), (s), (d)) |
| #define | INSTR_CREATE_pfrcpit1(dc, d, s) instr_create_1dst_2src((dc), OP_pfrcpit1, (d), (s), (d)) |
| #define | INSTR_CREATE_pfrcpit2(dc, d, s) instr_create_1dst_2src((dc), OP_pfrcpit2, (d), (s), (d)) |
| #define | INSTR_CREATE_pfrsqrt(dc, d, s) instr_create_1dst_2src((dc), OP_pfrsqrt, (d), (s), (d)) |
| #define | INSTR_CREATE_pfrsqit1(dc, d, s) instr_create_1dst_2src((dc), OP_pfrsqit1, (d), (s), (d)) |
| #define | INSTR_CREATE_pmulhrw(dc, d, s) instr_create_1dst_2src((dc), OP_pmulhrw, (d), (s), (d)) |
| #define | INSTR_CREATE_pfsub(dc, d, s) instr_create_1dst_2src((dc), OP_pfsub, (d), (s), (d)) |
| #define | INSTR_CREATE_pfsubr(dc, d, s) instr_create_1dst_2src((dc), OP_pfsubr, (d), (s), (d)) |
| #define | INSTR_CREATE_pi2fd(dc, d, s) instr_create_1dst_2src((dc), OP_pi2fd, (d), (s), (d)) |
| #define | INSTR_CREATE_pf2id(dc, d, s) instr_create_1dst_2src((dc), OP_pf2id, (d), (s), (d)) |
| #define | INSTR_CREATE_pi2fw(dc, d, s) instr_create_1dst_2src((dc), OP_pi2fw, (d), (s), (d)) |
| #define | INSTR_CREATE_pf2iw(dc, d, s) instr_create_1dst_2src((dc), OP_pf2iw, (d), (s), (d)) |
| #define | INSTR_CREATE_pfnacc(dc, d, s) instr_create_1dst_2src((dc), OP_pfnacc, (d), (s), (d)) |
| #define | INSTR_CREATE_pfpnacc(dc, d, s) instr_create_1dst_2src((dc), OP_pfpnacc, (d), (s), (d)) |
| #define | INSTR_CREATE_pswapd(dc, d, s) instr_create_1dst_2src((dc), OP_pswapd, (d), (s), (d)) |
| #define | INSTR_CREATE_phaddw(dc, d, s) instr_create_1dst_2src((dc), OP_phaddw, (d), (s), (d)) |
| #define | INSTR_CREATE_phaddd(dc, d, s) instr_create_1dst_2src((dc), OP_phaddd, (d), (s), (d)) |
| #define | INSTR_CREATE_phaddsw(dc, d, s) instr_create_1dst_2src((dc), OP_phaddsw, (d), (s), (d)) |
| #define | INSTR_CREATE_pmaddubsw(dc, d, s) instr_create_1dst_2src((dc), OP_pmaddubsw, (d), (s), (d)) |
| #define | INSTR_CREATE_phsubw(dc, d, s) instr_create_1dst_2src((dc), OP_phsubw, (d), (s), (d)) |
| #define | INSTR_CREATE_phsubd(dc, d, s) instr_create_1dst_2src((dc), OP_phsubd, (d), (s), (d)) |
| #define | INSTR_CREATE_phsubsw(dc, d, s) instr_create_1dst_2src((dc), OP_phsubsw, (d), (s), (d)) |
| #define | INSTR_CREATE_psignb(dc, d, s) instr_create_1dst_2src((dc), OP_psignb, (d), (s), (d)) |
| #define | INSTR_CREATE_psignw(dc, d, s) instr_create_1dst_2src((dc), OP_psignw, (d), (s), (d)) |
| #define | INSTR_CREATE_psignd(dc, d, s) instr_create_1dst_2src((dc), OP_psignd, (d), (s), (d)) |
| #define | INSTR_CREATE_pmulhrsw(dc, d, s) instr_create_1dst_2src((dc), OP_pmulhrsw, (d), (s), (d)) |
| #define | INSTR_CREATE_pabsb(dc, d, s) instr_create_1dst_2src((dc), OP_pabsb, (d), (s), (d)) |
| #define | INSTR_CREATE_pabsw(dc, d, s) instr_create_1dst_2src((dc), OP_pabsw, (d), (s), (d)) |
| #define | INSTR_CREATE_pabsd(dc, d, s) instr_create_1dst_2src((dc), OP_pabsd, (d), (s), (d)) |
| #define | INSTR_CREATE_pblendvb(dc, d, s) instr_create_1dst_2src((dc), OP_pblendvb, (d), (s), opnd_create_reg(REG_XMM0)) |
| #define | INSTR_CREATE_blendvps(dc, d, s) instr_create_1dst_2src((dc), OP_blendvps, (d), (s), opnd_create_reg(REG_XMM0)) |
| #define | INSTR_CREATE_blendvpd(dc, d, s) instr_create_1dst_2src((dc), OP_blendvpd, (d), (s), opnd_create_reg(REG_XMM0)) |
| #define | INSTR_CREATE_crc32(dc, d, s) instr_create_1dst_2src((dc), OP_crc32, (d), (s), (d)) |
| #define | INSTR_CREATE_packusdw(dc, d, s) instr_create_1dst_2src((dc), OP_packusdw, (d), (s), (d)) |
| #define | INSTR_CREATE_pcmpeqq(dc, d, s) instr_create_1dst_2src((dc), OP_pcmpeqq, (d), (s), (d)) |
| #define | INSTR_CREATE_pcmpgtq(dc, d, s) instr_create_1dst_2src((dc), OP_pcmpgtq, (d), (s), (d)) |
| #define | INSTR_CREATE_pminsb(dc, d, s) instr_create_1dst_2src((dc), OP_pminsb, (d), (s), (d)) |
| #define | INSTR_CREATE_pminsd(dc, d, s) instr_create_1dst_2src((dc), OP_pminsd, (d), (s), (d)) |
| #define | INSTR_CREATE_pminuw(dc, d, s) instr_create_1dst_2src((dc), OP_pminuw, (d), (s), (d)) |
| #define | INSTR_CREATE_pminud(dc, d, s) instr_create_1dst_2src((dc), OP_pminud, (d), (s), (d)) |
| #define | INSTR_CREATE_pmaxsb(dc, d, s) instr_create_1dst_2src((dc), OP_pmaxsb, (d), (s), (d)) |
| #define | INSTR_CREATE_pmaxsd(dc, d, s) instr_create_1dst_2src((dc), OP_pmaxsd, (d), (s), (d)) |
| #define | INSTR_CREATE_pmaxuw(dc, d, s) instr_create_1dst_2src((dc), OP_pmaxuw, (d), (s), (d)) |
| #define | INSTR_CREATE_pmaxud(dc, d, s) instr_create_1dst_2src((dc), OP_pmaxud, (d), (s), (d)) |
| #define | INSTR_CREATE_pmuldq(dc, d, s) instr_create_1dst_2src((dc), OP_pmuldq, (d), (s), (d)) |
| #define | INSTR_CREATE_pmulld(dc, d, s) instr_create_1dst_2src((dc), OP_pmulld, (d), (s), (d)) |
1 destination, 1 explicit register-or-immediate source | |
| #define | INSTR_CREATE_bts(dc, d, ri) instr_create_1dst_2src((dc), OP_bts, (d), (ri), (d)) |
| #define | INSTR_CREATE_btr(dc, d, ri) instr_create_1dst_2src((dc), OP_btr, (d), (ri), (d)) |
| #define | INSTR_CREATE_btc(dc, d, ri) instr_create_1dst_2src((dc), OP_btc, (d), (ri), (d)) |
1 implicit destination, 1 explicit source | |
| #define | INSTR_CREATE_imul_1(dc, s) instr_create_1dst_2src((dc), OP_imul, opnd_create_reg(REG_AX), (s), opnd_create_reg(REG_AL)) |
| #define | INSTR_CREATE_imul_4(dc, s) |
| #define | INSTR_CREATE_mul_1(dc, s) instr_create_1dst_2src((dc), OP_mul, opnd_create_reg(REG_AX), (s), opnd_create_reg(REG_AL)) |
| #define | INSTR_CREATE_mul_4(dc, s) |
| #define | INSTR_CREATE_div_1(dc, s) instr_create_2dst_2src((dc), OP_div, opnd_create_reg(REG_AH), opnd_create_reg(REG_AL), (s), opnd_create_reg(REG_AX)) |
| #define | INSTR_CREATE_div_4(dc, s) |
| #define | INSTR_CREATE_idiv_1(dc, s) instr_create_2dst_2src((dc), OP_idiv, opnd_create_reg(REG_AH), opnd_create_reg(REG_AL), (s), opnd_create_reg(REG_AX)) |
| #define | INSTR_CREATE_idiv_4(dc, s) |
1 destination, 1 explicit source that is cl, an immediate, or a constant | |
| #define | INSTR_CREATE_rol(dc, d, ri) instr_create_1dst_2src((dc), OP_rol, (d), (ri), (d)) |
| #define | INSTR_CREATE_ror(dc, d, ri) instr_create_1dst_2src((dc), OP_ror, (d), (ri), (d)) |
| #define | INSTR_CREATE_rcl(dc, d, ri) instr_create_1dst_2src((dc), OP_rcl, (d), (ri), (d)) |
| #define | INSTR_CREATE_rcr(dc, d, ri) instr_create_1dst_2src((dc), OP_rcr, (d), (ri), (d)) |
| #define | INSTR_CREATE_shl(dc, d, ri) instr_create_1dst_2src((dc), OP_shl, (d), (ri), (d)) |
| #define | INSTR_CREATE_shr(dc, d, ri) instr_create_1dst_2src((dc), OP_shr, (d), (ri), (d)) |
| #define | INSTR_CREATE_sar(dc, d, ri) instr_create_1dst_2src((dc), OP_sar, (d), (ri), (d)) |
1 implicit destination, 2 explicit sources | |
| #define | INSTR_CREATE_maskmovq(dc, s1, s2) |
| #define | INSTR_CREATE_maskmovdqu(dc, s1, s2) |
Floating-point with explicit destination and explicit mem-or-fp-reg source | |
| #define | INSTR_CREATE_fadd(dc, f, s) instr_create_1dst_2src((dc), OP_fadd, (f), (s), (f)) |
| #define | INSTR_CREATE_fmul(dc, f, s) instr_create_1dst_2src((dc), OP_fmul, (f), (s), (f)) |
| #define | INSTR_CREATE_fdiv(dc, f, s) instr_create_1dst_2src((dc), OP_fdiv, (f), (s), (f)) |
| #define | INSTR_CREATE_fdivr(dc, f, s) instr_create_1dst_2src((dc), OP_fdivr, (f), (s), (f)) |
| #define | INSTR_CREATE_fsub(dc, f, s) instr_create_1dst_2src((dc), OP_fsub, (f), (s), (f)) |
| #define | INSTR_CREATE_fsubr(dc, f, s) instr_create_1dst_2src((dc), OP_fsubr, (f), (s), (f)) |
Floating-point with explicit destination and implicit source | |
| #define | INSTR_CREATE_faddp(dc, f) instr_create_1dst_2src((dc), OP_faddp, (f), opnd_create_reg(REG_ST0), (f)) |
| #define | INSTR_CREATE_fmulp(dc, f) instr_create_1dst_2src((dc), OP_fmulp, (f), opnd_create_reg(REG_ST0), (f)) |
| #define | INSTR_CREATE_fdivp(dc, f) instr_create_1dst_2src((dc), OP_fdivp, (f), opnd_create_reg(REG_ST0), (f)) |
| #define | INSTR_CREATE_fdivrp(dc, f) instr_create_1dst_2src((dc), OP_fdivrp, (f), opnd_create_reg(REG_ST0), (f)) |
| #define | INSTR_CREATE_fsubp(dc, f) instr_create_1dst_2src((dc), OP_fsubp, (f), opnd_create_reg(REG_ST0), (f)) |
| #define | INSTR_CREATE_fsubrp(dc, f) instr_create_1dst_2src((dc), OP_fsubrp, (f), opnd_create_reg(REG_ST0), (f)) |
Floating-point with implicit destination and explicit memory source | |
| #define | INSTR_CREATE_fiadd(dc, m) instr_create_1dst_2src((dc), OP_fiadd, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fimul(dc, m) instr_create_1dst_2src((dc), OP_fimul, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fidiv(dc, m) instr_create_1dst_2src((dc), OP_fidiv, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fidivr(dc, m) instr_create_1dst_2src((dc), OP_fidivr, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fisub(dc, m) instr_create_1dst_2src((dc), OP_fisub, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_fisubr(dc, m) instr_create_1dst_2src((dc), OP_fisubr, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_ficom(dc, m) instr_create_1dst_2src((dc), OP_ficom, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0)) |
| #define | INSTR_CREATE_ficomp(dc, m) instr_create_1dst_2src((dc), OP_ficomp, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0)) |
1 implicit destination, 2 sources: 1 explicit, 1 implicit | |
| #define | INSTR_CREATE_aam(dc, i) instr_create_1dst_2src((dc), OP_aam, opnd_create_reg(REG_AX), (i), opnd_create_reg(REG_AX)) |
| #define | INSTR_CREATE_aad(dc, i) instr_create_1dst_2src((dc), OP_aad, opnd_create_reg(REG_AX), (i), opnd_create_reg(REG_AX)) |
Loop instructions | |
| #define | INSTR_CREATE_loopne(dc, t) instr_create_1dst_2src((dc), OP_loopne, opnd_create_reg(REG_XCX), (t), opnd_create_reg(REG_XCX)) |
| #define | INSTR_CREATE_loope(dc, t) instr_create_1dst_2src((dc), OP_loope, opnd_create_reg(REG_XCX), (t), opnd_create_reg(REG_XCX)) |
| #define | INSTR_CREATE_loop(dc, t) instr_create_1dst_2src((dc), OP_loop, opnd_create_reg(REG_XCX), (t), opnd_create_reg(REG_XCX)) |
1 implicit destination, 2 implicit sources | |
| #define | INSTR_CREATE_popf(dc) |
| #define | INSTR_CREATE_ret(dc) |
| #define | INSTR_CREATE_ret_far(dc) |
| #define | INSTR_CREATE_iret(dc) |
1 destination, 3 sources: 1 implicit | |
| #define | INSTR_CREATE_shld(dc, d, s, ri) instr_create_1dst_3src((dc), OP_shld, (d), (s), (ri), (d)) |
| #define | INSTR_CREATE_shrd(dc, d, s, ri) instr_create_1dst_3src((dc), OP_shrd, (d), (s), (ri), (d)) |
1 explicit destination, 2 explicit sources | |
| #define | INSTR_CREATE_shufps(dc, d, s, i) instr_create_1dst_3src((dc), OP_shufps, (d), (s), (i), (d)) |
| #define | INSTR_CREATE_shufpd(dc, d, s, i) instr_create_1dst_3src((dc), OP_shufpd, (d), (s), (i), (d)) |
| #define | INSTR_CREATE_cmpps(dc, d, s, i) instr_create_1dst_3src((dc), OP_cmpps, (d), (s), (i), (d)) |
| #define | INSTR_CREATE_cmpss(dc, d, s, i) instr_create_1dst_3src((dc), OP_cmpss, (d), (s), (i), (d)) |
| #define | INSTR_CREATE_cmppd(dc, d, s, i) instr_create_1dst_3src((dc), OP_cmppd, (d), (s), (i), (d)) |
| #define | INSTR_CREATE_cmpsd(dc, d, s, i) instr_create_1dst_3src((dc), OP_cmpsd, (d), (s), (i), (d)) |
| #define | INSTR_CREATE_palignr(dc, d, s, i) instr_create_1dst_3src((dc), OP_palignr, (d), (s), (i), (d)) |
| #define | INSTR_CREATE_dpps(dc, d, s, i) instr_create_1dst_3src((dc), OP_dpps, (d), (s), (i), (d)) |
| #define | INSTR_CREATE_dppd(dc, d, s, i) instr_create_1dst_3src((dc), OP_dppd, (d), (s), (i), (d)) |
| #define | INSTR_CREATE_mpsadbw(dc, d, s, i) instr_create_1dst_3src((dc), OP_mpsadbw, (d), (s), (i), (d)) |
1 implicit destination, 3 sources | |
| #define | INSTR_CREATE_pcmpistrm(dc, s1, s2, i) instr_create_1dst_3src((dc), OP_pcmpistrm, opnd_create_reg(REG_XMM0), (s1), (s2), (i)) |
| #define | INSTR_CREATE_pcmpistri(dc, s1, s2, i) instr_create_1dst_3src((dc), OP_pcmpistri, opnd_create_reg(REG_ECX), (s1), (s2), (i)) |
1 implicit destination, 3 sources: 2 implicit | |
| #define | INSTR_CREATE_ret_imm(dc, i) |
| #define | INSTR_CREATE_ret_far_imm(dc, i) |
1 implicit destination, 5 sources: 2 implicit | |
| #define | INSTR_CREATE_pcmpestrm(dc, s1, s2, i) |
| #define | INSTR_CREATE_pcmpestri(dc, s1, s2, i) |
2 destinations: 1 implicit, 1 source | |
| #define | INSTR_CREATE_lds(dc, d, s) instr_create_2dst_1src((dc), OP_lds, (d), opnd_create_reg(SEG_DS), (s)) |
| #define | INSTR_CREATE_lss(dc, d, s) instr_create_2dst_1src((dc), OP_lss, (d), opnd_create_reg(SEG_SS), (s)) |
| #define | INSTR_CREATE_les(dc, d, s) instr_create_2dst_1src((dc), OP_les, (d), opnd_create_reg(SEG_ES), (s)) |
| #define | INSTR_CREATE_lfs(dc, d, s) instr_create_2dst_1src((dc), OP_lfs, (d), opnd_create_reg(SEG_FS), (s)) |
| #define | INSTR_CREATE_lgs(dc, d, s) instr_create_2dst_1src((dc), OP_lgs, (d), opnd_create_reg(SEG_GS), (s)) |
2 implicit destinations, 1 implicit source | |
| #define | INSTR_CREATE_pushf(dc) |
| #define | INSTR_CREATE_int3(dc) |
| #define | INSTR_CREATE_into(dc) |
| #define | INSTR_CREATE_int1(dc) |
| #define | INSTR_CREATE_rdmsr(dc) |
| #define | INSTR_CREATE_rdpmc(dc) |
2 destinations: 1 implicit, 2 sources: 1 implicit | |
| #define | INSTR_CREATE_xchg(dc, d, s) instr_create_2dst_2src((dc), OP_xchg, (d), (s), (d), (s)) |
| #define | INSTR_CREATE_xadd(dc, d, s) instr_create_2dst_2src((dc), OP_xadd, (d), (s), (d), (s)) |
String instructions | |
| #define | INSTR_CREATE_ins_1(dc) |
| #define | INSTR_CREATE_ins_4(dc) |
| #define | INSTR_CREATE_stos_1(dc) |
| #define | INSTR_CREATE_stos_4(dc) |
| #define | INSTR_CREATE_lods_1(dc) |
| #define | INSTR_CREATE_lods_4(dc) |
| #define | INSTR_CREATE_movs_1(dc) |
| #define | INSTR_CREATE_movs_4(dc) |
| #define | INSTR_CREATE_rep_ins_1(dc) |
| #define | INSTR_CREATE_rep_ins_4(dc) |
| #define | INSTR_CREATE_rep_stos_1(dc) |
| #define | INSTR_CREATE_rep_stos_4(dc) |
| #define | INSTR_CREATE_rep_lods_1(dc) |
| #define | INSTR_CREATE_rep_lods_4(dc) |
| #define | INSTR_CREATE_rep_movs_1(dc) |
| #define | INSTR_CREATE_rep_movs_4(dc) |
| #define | INSTR_CREATE_outs_1(dc) |
| #define | INSTR_CREATE_outs_4(dc) |
| #define | INSTR_CREATE_cmps_1(dc) |
| #define | INSTR_CREATE_cmps_4(dc) |
| #define | INSTR_CREATE_scas_1(dc) |
| #define | INSTR_CREATE_scas_4(dc) |
| #define | INSTR_CREATE_rep_outs_1(dc) |
| #define | INSTR_CREATE_rep_outs_4(dc) |
| #define | INSTR_CREATE_rep_cmps_1(dc) |
| #define | INSTR_CREATE_rep_cmps_4(dc) |
| #define | INSTR_CREATE_repne_cmps_1(dc) |
| #define | INSTR_CREATE_repne_cmps_4(dc) |
| #define | INSTR_CREATE_rep_scas_1(dc) |
| #define | INSTR_CREATE_rep_scas_4(dc) |
| #define | INSTR_CREATE_repne_scas_1(dc) |
| #define | INSTR_CREATE_repne_scas_4(dc) |
2 destinations: 1 implicit, 3 sources: 1 implicit | |
| #define | INSTR_CREATE_cmpxchg_1(dc, d, s) |
| #define | INSTR_CREATE_cmpxchg_4(dc, d, s) |
No destination, many implicit sources | |
| #define | INSTR_CREATE_pusha(dc) instr_create_pusha((dc)) |
| #define | INSTR_CREATE_cpuid(dc) |
Nops | |
| #define | INSTR_CREATE_nop1byte(dc) INSTR_CREATE_nop(dc) |
| #define | INSTR_CREATE_nop2byte(dc) INSTR_CREATE_nop2byte_reg(dc, REG_XDI) |
| #define | INSTR_CREATE_nop3byte(dc) INSTR_CREATE_nop3byte_reg(dc, REG_XDI) |
2-byte reg nops | |
|
| |
| #define | INSTR_CREATE_nop3byte_reg(dc, reg) INSTR_CREATE_lea(dc, opnd_create_reg(reg), OPND_CREATE_MEM_lea(reg, REG_NULL, 0, 0)) |
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 INSTR_CREATE_aaa | ( | dc | ) | instr_create_1dst_1src((dc), OP_aaa, opnd_create_reg(REG_AX), opnd_create_reg(REG_AX)) |
| #define INSTR_CREATE_aad | ( | dc, | |||
| i | ) | instr_create_1dst_2src((dc), OP_aad, opnd_create_reg(REG_AX), (i), opnd_create_reg(REG_AX)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| 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, | |||
| i | ) | instr_create_1dst_2src((dc), OP_aam, opnd_create_reg(REG_AX), (i), opnd_create_reg(REG_AX)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| i | The opnd_t explicit source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()). |
| #define INSTR_CREATE_aas | ( | dc | ) | instr_create_1dst_1src((dc), OP_aas, opnd_create_reg(REG_AX), opnd_create_reg(REG_AX)) |
| #define INSTR_CREATE_adc | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_add | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_addpd | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_addps | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_addsd | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_addss | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_addsubpd | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_addsubps | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_and | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_andnpd | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_andnps | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_andpd | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_andps | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_arpl | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_blendpd | ( | dc, | |||
| d, | |||||
| s, | |||||
| i | ) | instr_create_1dst_2src((dc), OP_blendpd, (d), (s), (i)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory 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, | |||||
| i | ) | instr_create_1dst_2src((dc), OP_blendps, (d), (s), (i)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory 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, | |||||
| s | ) | instr_create_1dst_2src((dc), OP_blendvpd, (d), (s), opnd_create_reg(REG_XMM0)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| #define INSTR_CREATE_blendvps | ( | dc, | |||
| d, | |||||
| s | ) | instr_create_1dst_2src((dc), OP_blendvps, (d), (s), opnd_create_reg(REG_XMM0)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| #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.
| 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, | |||||
| s | ) | 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.
| #define INSTR_CREATE_bsr | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_bswap | ( | dc, | |||
| d | ) | instr_create_1dst_1src((dc), OP_bswap, (d), (d)) |
| #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.
| #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.
| 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.
| 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.
| 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, | |||
| t | ) |
instr_create_2dst_2src((dc), OP_call, opnd_create_reg(REG_XSP), \ opnd_create_base_disp(REG_XSP, REG_NULL, 0, 0, OPSZ_STACK), \ (t), opnd_create_reg(REG_XSP))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| 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, | |||
| t | ) |
instr_create_2dst_2src((dc), OP_call_far, opnd_create_reg(REG_XSP), \ opnd_create_base_disp(REG_XSP, REG_NULL, 0, 0, OPSZ_STACK), \ (t), opnd_create_reg(REG_XSP))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| 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, | |||
| t | ) |
instr_create_2dst_2src((dc), OP_call_far_ind, opnd_create_reg(REG_XSP), \ opnd_create_base_disp(REG_XSP, REG_NULL, 0, 0, OPSZ_REXVARSTACK), \ (t), opnd_create_reg(REG_XSP))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| 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, | |||
| t | ) |
instr_create_2dst_2src((dc), OP_call_ind, opnd_create_reg(REG_XSP), \ opnd_create_base_disp(REG_XSP, REG_NULL, 0, 0, OPSZ_STACK), \ (t), opnd_create_reg(REG_XSP))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| t | The opnd_t target operand for the instruction, which should be a memory reference created with opnd_create_base_disp(). |
| #define INSTR_CREATE_cdq | ( | dc | ) | instr_create_1dst_1src((dc), OP_cdq, opnd_create_reg(REG_EDX), opnd_create_reg(REG_EAX)) |
| #define INSTR_CREATE_clc | ( | dc | ) | instr_create_0dst_0src((dc), OP_clc) |
| #define INSTR_CREATE_cld | ( | dc | ) | instr_create_0dst_0src((dc), OP_cld) |
| #define INSTR_CREATE_clflush | ( | dc, | |||
| s | ) | 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.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| s | The opnd_t explicit source operand for the instruction, which can be created with OPND_CREATE_MEM_clflush() to get the appropriate operand size. |
| #define INSTR_CREATE_cli | ( | dc | ) | instr_create_0dst_0src((dc), OP_cli) |
| #define INSTR_CREATE_clts | ( | dc | ) | instr_create_0dst_0src((dc), OP_clts) |
| #define INSTR_CREATE_cmc | ( | dc | ) | instr_create_0dst_0src((dc), OP_cmc) |
| #define INSTR_CREATE_cmovcc | ( | dc, | |||
| op, | |||||
| d, | |||||
| s | ) | 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.
| #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.
| #define INSTR_CREATE_cmppd | ( | dc, | |||
| d, | |||||
| s, | |||||
| i | ) | 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.
| dc | The void * dcontext used to allocate memory 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, | |||||
| i | ) | 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.
| dc | The void * dcontext used to allocate memory 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 | ) |
instr_create_2dst_4src((dc), OP_cmps, opnd_create_reg(REG_XSI), opnd_create_reg(REG_XDI), \ opnd_create_far_base_disp(SEG_DS, REG_XSI, REG_NULL, 0, 0, OPSZ_1), \ opnd_create_far_base_disp(SEG_ES, REG_XDI, REG_NULL, 0, 0, OPSZ_1), \ opnd_create_reg(REG_XSI), opnd_create_reg(REG_XDI))
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).
| dc | The void * dcontext used to allocate memory for the instr_t. |
| #define INSTR_CREATE_cmps_4 | ( | dc | ) |
instr_create_2dst_4src((dc), OP_cmps, opnd_create_reg(REG_XSI), opnd_create_reg(REG_XDI), \ opnd_create_far_base_disp(SEG_DS, REG_XSI, REG_NULL, 0, 0, OPSZ_4_rex8_short2), \ opnd_create_far_base_disp(SEG_ES, REG_XDI, REG_NULL, 0, 0, OPSZ_4_rex8_short2), \ opnd_create_reg(REG_XSI), opnd_create_reg(REG_XDI))
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).
| dc | The void * dcontext used to allocate memory for the instr_t. |
| #define INSTR_CREATE_cmpsd | ( | dc, | |||
| d, | |||||
| s, | |||||
| i | ) | 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.
| dc | The void * dcontext used to allocate memory 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, | |||||
| i | ) | 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.
| dc | The void * dcontext used to allocate memory 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, | |||
| d | ) |
instr_create_3dst_5src((dc), OP_cmpxchg8b, (d), opnd_create_reg(REG_EAX), \ opnd_create_reg(REG_EDX), (d), opnd_create_reg(REG_EAX), opnd_create_reg(REG_EDX), \ opnd_create_reg(REG_ECX), opnd_create_reg(REG_EBX))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| #define INSTR_CREATE_cmpxchg_1 | ( | dc, | |||
| d, | |||||
| s | ) |
instr_create_2dst_3src((dc), OP_cmpxchg, (d), opnd_create_reg(REG_AL), (s), (d), \ opnd_create_reg(REG_AL))
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).
| #define INSTR_CREATE_cmpxchg_4 | ( | dc, | |||
| d, | |||||
| s | ) |
instr_create_2dst_3src((dc), OP_cmpxchg, (d), opnd_create_reg(REG_EAX), (s), (d), \ opnd_create_reg(REG_EAX))
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).
| #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.
| #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.
| #define INSTR_CREATE_cpuid | ( | dc | ) |
instr_create_4dst_1src((dc), OP_cpuid, opnd_create_reg(REG_EAX), \ opnd_create_reg(REG_EBX), opnd_create_reg(REG_ECX), opnd_create_reg(REG_EDX), opnd_create_reg(REG_EAX))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. |
| #define INSTR_CREATE_crc32 | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvtdq2pd | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvtdq2ps | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvtpd2dq | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvtpd2pi | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvtpd2ps | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvtpi2pd | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvtpi2ps | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvtps2dq | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvtps2pd | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvtps2pi | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvtsd2si | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvtsd2ss | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvtsi2sd | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvtsi2ss | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvtss2sd | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvtss2si | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvttpd2dq | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvttpd2pi | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvttps2dq | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvttps2pi | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvttsd2si | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cvttss2si | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_cwde | ( | dc | ) | instr_create_1dst_1src((dc), OP_cwde, opnd_create_reg(REG_EAX), opnd_create_reg(REG_AX)) |
| #define INSTR_CREATE_daa | ( | dc | ) | instr_create_1dst_1src((dc), OP_daa, opnd_create_reg(REG_AL), opnd_create_reg(REG_AL)) |
| #define INSTR_CREATE_das | ( | dc | ) | instr_create_1dst_1src((dc), OP_das, opnd_create_reg(REG_AL), opnd_create_reg(REG_AL)) |
| #define INSTR_CREATE_dec | ( | dc, | |||
| d | ) | instr_create_1dst_1src((dc), OP_dec, (d), (d)) |
| #define INSTR_CREATE_div_1 | ( | dc, | |||
| s | ) | instr_create_2dst_2src((dc), OP_div, opnd_create_reg(REG_AH), opnd_create_reg(REG_AL), (s), opnd_create_reg(REG_AX)) |
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).
| #define INSTR_CREATE_div_4 | ( | dc, | |||
| s | ) |
instr_create_2dst_3src((dc), OP_div, opnd_create_reg(REG_EDX), opnd_create_reg(REG_EAX), \ (s), opnd_create_reg(REG_EDX), opnd_create_reg(REG_EAX))
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).
| #define INSTR_CREATE_divpd | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_divps | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_divsd | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_divss | ( | dc, | |||
| d, | |||||
| s | ) | 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.
| #define INSTR_CREATE_dppd | ( | dc, | |||
| d, | |||||
| s, | |||||
| i | ) | 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.
| dc | The void * dcontext used to allocate memory 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, | |||||
| i | ) | 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.
| dc | The void * dcontext used to allocate memory 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) |
| #define INSTR_CREATE_enter | ( | dc, | |||
| i16, | |||||
| i8 | ) |
instr_create_3dst_4src((dc), OP_enter, opnd_create_reg(REG_XSP), \ opnd_create_base_disp(REG_XSP, REG_NULL, 0, 0, OPSZ_STACK), \ opnd_create_reg(REG_XBP), \ (i16), (i8), opnd_create_reg(REG_XSP), opnd_create_reg(REG_XBP))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| 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, | |||||
| i | ) | 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.
| dc | The void * dcontext used to allocate memory 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, | |||||
| r | ) | 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.
| 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.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| d | The opnd_t explicit destination operand for the instruction. | |
| i1 | The opnd_t explicit first source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()). | |
| i2 | The opnd_t explicit second source operand for the instruction, which must be an immediate integer (opnd_create_immed_int()). |
| #define INSTR_CREATE_f2xm1 | ( | dc | ) | instr_create_1dst_1src((dc), OP_f2xm1, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define INSTR_CREATE_fabs | ( | dc | ) | instr_create_1dst_1src((dc), OP_fabs, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define INSTR_CREATE_fadd | ( | dc, | |||
| f, | |||||
| s | ) | 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.
| 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:
|
| #define INSTR_CREATE_faddp | ( | dc, | |||
| f | ) | instr_create_1dst_2src((dc), OP_faddp, (f), opnd_create_reg(REG_ST0), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit register operand, automatically supplying any implicit operands.
| 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, | |||
| m | ) | instr_create_1dst_1src((dc), OP_fbld, opnd_create_reg(REG_ST0), (m)) |
This INSTR_CREATE_xxx_mem macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.
| 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, | |||
| m | ) | instr_create_1dst_1src((dc), OP_fbstp, (m), opnd_create_reg(REG_ST0)) |
This INSTR_CREATE_xxx_mem macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit destination operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). |
| #define INSTR_CREATE_fchs | ( | dc | ) | instr_create_1dst_1src((dc), OP_fchs, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define INSTR_CREATE_fcmovcc | ( | dc, | |||
| op, | |||||
| f | ) | instr_create_1dst_1src((dc), (op), opnd_create_reg(REG_ST0), (f)) |
Creats an instr_t for a conditional move instruction with the given opcode and destination operand.
| 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, | |||
| s | ) | instr_create_0dst_2src((dc), OP_fcom, (s), opnd_create_reg(REG_ST0)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| 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:
|
| #define INSTR_CREATE_fcomi | ( | dc, | |||
| f | ) | instr_create_0dst_2src((dc), OP_fcomi, opnd_create_reg(REG_ST0), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| f | The opnd_t explicit source operand for the instruction, which must be a floating point register (opnd_create_reg()). The other (implicit) source operand is REG_ST0. |
| #define INSTR_CREATE_fcomip | ( | dc, | |||
| f | ) | instr_create_0dst_2src((dc), OP_fcomip, opnd_create_reg(REG_ST0), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| f | The opnd_t explicit source operand for the instruction, which must be a floating point register (opnd_create_reg()). The other (implicit) source operand is REG_ST0. |
| #define INSTR_CREATE_fcomp | ( | dc, | |||
| s | ) | instr_create_0dst_2src((dc), OP_fcomp, (s), opnd_create_reg(REG_ST0)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| 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:
|
| #define INSTR_CREATE_fcompp | ( | dc | ) | instr_create_0dst_2src((dc), OP_fcompp, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1)) |
| #define INSTR_CREATE_fcos | ( | dc | ) | instr_create_1dst_1src((dc), OP_fcos, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define INSTR_CREATE_fdecstp | ( | dc | ) | instr_create_0dst_0src((dc), OP_fdecstp) |
| #define INSTR_CREATE_fdiv | ( | dc, | |||
| f, | |||||
| s | ) | instr_create_1dst_2src((dc), OP_fdiv, (f), (s), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given operands, automatically supplying any further implicit operands.
| 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:
|
| #define INSTR_CREATE_fdivp | ( | dc, | |||
| f | ) | instr_create_1dst_2src((dc), OP_fdivp, (f), opnd_create_reg(REG_ST0), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit register operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| f | The opnd_t explicit destination + source operand for the instruction, which must be a floating point register (opnd_create_reg()). |
| #define INSTR_CREATE_fdivr | ( | dc, | |||
| f, | |||||
| s | ) | instr_create_1dst_2src((dc), OP_fdivr, (f), (s), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given operands, automatically supplying any further implicit operands.
| 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:
|
| #define INSTR_CREATE_fdivrp | ( | dc, | |||
| f | ) | instr_create_1dst_2src((dc), OP_fdivrp, (f), opnd_create_reg(REG_ST0), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit register operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| f | The opnd_t explicit destination + source operand for the instruction, which must be a floating point register (opnd_create_reg()). |
| #define INSTR_CREATE_femms | ( | dc | ) | instr_create_0dst_0src((dc), OP_femms) |
| #define INSTR_CREATE_ffree | ( | dc, | |||
| f | ) | instr_create_1dst_0src((dc), OP_ffree, (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| f | The opnd_t explicit destination operand for the instruction, which must be a floating point register (opnd_create_reg()). |
| #define INSTR_CREATE_fiadd | ( | dc, | |||
| m | ) | instr_create_1dst_2src((dc), OP_fiadd, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). |
| #define INSTR_CREATE_ficom | ( | dc, | |||
| m | ) | instr_create_1dst_2src((dc), OP_ficom, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). |
| #define INSTR_CREATE_ficomp | ( | dc, | |||
| m | ) | instr_create_1dst_2src((dc), OP_ficomp, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). |
| #define INSTR_CREATE_fidiv | ( | dc, | |||
| m | ) | instr_create_1dst_2src((dc), OP_fidiv, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). |
| #define INSTR_CREATE_fidivr | ( | dc, | |||
| m | ) | instr_create_1dst_2src((dc), OP_fidivr, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). |
| #define INSTR_CREATE_fild | ( | dc, | |||
| m | ) | instr_create_1dst_1src((dc), OP_fild, opnd_create_reg(REG_ST0), (m)) |
This INSTR_CREATE_xxx_mem macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). |
| #define INSTR_CREATE_fimul | ( | dc, | |||
| m | ) | instr_create_1dst_2src((dc), OP_fimul, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). |
| #define INSTR_CREATE_fincstp | ( | dc | ) | instr_create_0dst_0src((dc), OP_fincstp) |
| #define INSTR_CREATE_fist | ( | dc, | |||
| m | ) | instr_create_1dst_1src((dc), OP_fist, (m), opnd_create_reg(REG_ST0)) |
This INSTR_CREATE_xxx_mem macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit destination operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). |
| #define INSTR_CREATE_fistp | ( | dc, | |||
| m | ) | instr_create_1dst_1src((dc), OP_fistp, (m), opnd_create_reg(REG_ST0)) |
This INSTR_CREATE_xxx_mem macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit destination operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). |
| #define INSTR_CREATE_fisttp | ( | dc, | |||
| m | ) | instr_create_1dst_1src((dc), OP_fisttp, (m), opnd_create_reg(REG_ST0)) |
This INSTR_CREATE_xxx_mem macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit destination operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). |
| #define INSTR_CREATE_fisub | ( | dc, | |||
| m | ) | instr_create_1dst_2src((dc), OP_fisub, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). |
| #define INSTR_CREATE_fisubr | ( | dc, | |||
| m | ) | instr_create_1dst_2src((dc), OP_fisubr, opnd_create_reg(REG_ST0), (m), opnd_create_reg(REG_ST0)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit memory operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit source operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). |
| #define INSTR_CREATE_fld | ( | dc, | |||
| s | ) | instr_create_1dst_1src((dc), OP_fld, opnd_create_reg(REG_ST0), (s)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| 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:
|
| #define INSTR_CREATE_fld1 | ( | dc | ) | instr_create_1dst_1src((dc), OP_fld1, opnd_create_reg(REG_ST0), opnd_create_immed_float(1.0f)) |
| #define INSTR_CREATE_fldcw | ( | dc, | |||
| m | ) | instr_create_0dst_1src((dc), OP_fldcw, (m)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit destination operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). |
| #define INSTR_CREATE_fldenv | ( | dc, | |||
| m | ) | instr_create_0dst_1src((dc), OP_fldenv, (m)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit destination operand for the instruction, which can be created with OPND_CREATE_MEM_fldenv() to get the appropriate operand size. |
| #define INSTR_CREATE_fldl2e | ( | dc | ) |
instr_create_1dst_1src((dc), OP_fldl2e, opnd_create_reg(REG_ST0), \ opnd_create_immed_float(1.0f/(float)M_LN2))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. |
| #define INSTR_CREATE_fldl2t | ( | dc | ) |
instr_create_1dst_1src((dc), OP_fldl2t, opnd_create_reg(REG_ST0), \ opnd_create_immed_float((float)M_LN10/(float)M_LN2))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. |
| #define INSTR_CREATE_fldlg2 | ( | dc | ) |
instr_create_1dst_1src((dc), OP_fldlg2, opnd_create_reg(REG_ST0), \ opnd_create_immed_float((float)M_LN2/(float)M_LN10))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. |
| #define INSTR_CREATE_fldln2 | ( | dc | ) |
instr_create_1dst_1src((dc), OP_fldln2, opnd_create_reg(REG_ST0), \ opnd_create_immed_float((float)M_LN2))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. |
| #define INSTR_CREATE_fldpi | ( | dc | ) |
instr_create_1dst_1src((dc), OP_fldpi, opnd_create_reg(REG_ST0), \ opnd_create_immed_float((float)M_PI))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. |
| #define INSTR_CREATE_fldz | ( | dc | ) | instr_create_1dst_1src((dc), OP_fldz, opnd_create_reg(REG_ST0), opnd_create_immed_float(0.0f)) |
| #define INSTR_CREATE_fmul | ( | dc, | |||
| f, | |||||
| s | ) | instr_create_1dst_2src((dc), OP_fmul, (f), (s), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given operands, automatically supplying any further implicit operands.
| 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:
|
| #define INSTR_CREATE_fmulp | ( | dc, | |||
| f | ) | instr_create_1dst_2src((dc), OP_fmulp, (f), opnd_create_reg(REG_ST0), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit register operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| f | The opnd_t explicit destination + source operand for the instruction, which must be a floating point register (opnd_create_reg()). |
| #define INSTR_CREATE_fnclex | ( | dc | ) | instr_create_0dst_0src((dc), OP_fnclex) |
| #define INSTR_CREATE_fninit | ( | dc | ) | instr_create_0dst_0src((dc), OP_fninit) |
| #define INSTR_CREATE_fnop | ( | dc | ) | instr_create_0dst_0src((dc), OP_fnop) |
| #define INSTR_CREATE_fnsave | ( | dc, | |||
| m | ) | instr_create_1dst_0src((dc), OP_fnsave, (m)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit destination operand for the instruction, which can be created with OPND_CREATE_MEM_fnsave() to get the appropriate operand size. |
| #define INSTR_CREATE_fnstcw | ( | dc, | |||
| m | ) | instr_create_1dst_0src((dc), OP_fnstcw, (m)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit destination operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. | |
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit destination operand for the instruction, which can be created with OPND_CREATE_MEM_fnstenv() to get the appropriate operand size. |
| #define INSTR_CREATE_fnstenv | ( | dc, | |||
| m | ) | instr_create_1dst_0src((dc), OP_fnstenv, (m)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit destination operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. | |
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit destination operand for the instruction, which can be created with OPND_CREATE_MEM_fnstenv() to get the appropriate operand size. |
| #define INSTR_CREATE_fnstsw | ( | dc, | |||
| m | ) | instr_create_1dst_0src((dc), OP_fnstsw, (m)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit destination operand for the instruction, which must be a memory reference (opnd_create_base_disp() or opnd_create_far_base_disp()). This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands. | |
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit destination operand for the instruction, which can be created with OPND_CREATE_MEM_fnstenv() to get the appropriate operand size. |
| #define INSTR_CREATE_fpatan | ( | dc | ) |
instr_create_2dst_2src((dc), OP_fpatan, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1), \ opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. |
| #define INSTR_CREATE_fprem | ( | dc | ) |
instr_create_2dst_2src((dc), OP_fprem, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1), \ opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. |
| #define INSTR_CREATE_fprem1 | ( | dc | ) |
instr_create_2dst_2src((dc), OP_fprem1, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1), \ opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. |
| #define INSTR_CREATE_fptan | ( | dc | ) | instr_create_1dst_1src((dc), OP_fptan, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define INSTR_CREATE_frndint | ( | dc | ) | instr_create_1dst_1src((dc), OP_frndint, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define INSTR_CREATE_frstor | ( | dc, | |||
| m | ) | instr_create_0dst_1src((dc), OP_frstor, (m)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| m | The opnd_t explicit destination operand for the instruction, which can be created with OPND_CREATE_MEM_frstor() to get the appropriate operand size. |
| #define INSTR_CREATE_fscale | ( | dc | ) |
instr_create_1dst_2src((dc), OP_fscale, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1), \ opnd_create_reg(REG_ST0))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. |
| #define INSTR_CREATE_fsin | ( | dc | ) | instr_create_1dst_1src((dc), OP_fsin, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define INSTR_CREATE_fsincos | ( | dc | ) | instr_create_1dst_1src((dc), OP_fsincos, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define INSTR_CREATE_fsqrt | ( | dc | ) | instr_create_1dst_1src((dc), OP_fsqrt, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define INSTR_CREATE_fst | ( | dc, | |||
| d | ) | instr_create_1dst_1src((dc), OP_fst, (d), opnd_create_reg(REG_ST0)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| d | The opnd_t explicit destination operand for the instruction, which must be one of the following:
|
| #define INSTR_CREATE_fstp | ( | dc, | |||
| d | ) | instr_create_1dst_1src((dc), OP_fstp, (d), opnd_create_reg(REG_ST0)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| d | The opnd_t explicit destination operand for the instruction, which must be one of the following:
|
| #define INSTR_CREATE_fsub | ( | dc, | |||
| f, | |||||
| s | ) | instr_create_1dst_2src((dc), OP_fsub, (f), (s), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given operands, automatically supplying any further implicit operands.
| 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:
|
| #define INSTR_CREATE_fsubp | ( | dc, | |||
| f | ) | instr_create_1dst_2src((dc), OP_fsubp, (f), opnd_create_reg(REG_ST0), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit register operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| f | The opnd_t explicit destination + source operand for the instruction, which must be a floating point register (opnd_create_reg()). |
| #define INSTR_CREATE_fsubr | ( | dc, | |||
| f, | |||||
| s | ) | instr_create_1dst_2src((dc), OP_fsubr, (f), (s), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given operands, automatically supplying any further implicit operands.
| 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:
|
| #define INSTR_CREATE_fsubrp | ( | dc, | |||
| f | ) | instr_create_1dst_2src((dc), OP_fsubrp, (f), opnd_create_reg(REG_ST0), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit register operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| f | The opnd_t explicit destination + source operand for the instruction, which must be a floating point register (opnd_create_reg()). |
| #define INSTR_CREATE_ftst | ( | dc | ) | instr_create_1dst_1src((dc), OP_ftst, opnd_create_reg(REG_ST0), opnd_create_immed_float(0.0f)) |
| #define INSTR_CREATE_fucom | ( | dc, | |||
| f | ) | instr_create_0dst_2src((dc), OP_fucom, opnd_create_reg(REG_ST0), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| f | The opnd_t explicit source operand for the instruction, which must be a floating point register (opnd_create_reg()). The other (implicit) source operand is REG_ST0. |
| #define INSTR_CREATE_fucomi | ( | dc, | |||
| f | ) | instr_create_0dst_2src((dc), OP_fucomi, opnd_create_reg(REG_ST0), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| f | The opnd_t explicit source operand for the instruction, which must be a floating point register (opnd_create_reg()). The other (implicit) source operand is REG_ST0. |
| #define INSTR_CREATE_fucomip | ( | dc, | |||
| f | ) | instr_create_0dst_2src((dc), OP_fucomip, opnd_create_reg(REG_ST0), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| f | The opnd_t explicit source operand for the instruction, which must be a floating point register (opnd_create_reg()). The other (implicit) source operand is REG_ST0. |
| #define INSTR_CREATE_fucomp | ( | dc, | |||
| f | ) | instr_create_0dst_2src((dc), OP_fucomp, opnd_create_reg(REG_ST0), (f)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| f | The opnd_t explicit source operand for the instruction, which must be a floating point register (opnd_create_reg()). The other (implicit) source operand is REG_ST0. |
| #define INSTR_CREATE_fucompp | ( | dc | ) | instr_create_0dst_2src((dc), OP_fucompp, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1)) |
| #define INSTR_CREATE_fwait | ( | dc | ) | instr_create_0dst_0src((dc), OP_fwait) |
| #define INSTR_CREATE_fxam | ( | dc | ) | instr_create_0dst_1src((dc), OP_fxam, opnd_create_reg(REG_ST0)) |
| #define INSTR_CREATE_fxch | ( | dc, | |||
| f | ) |
instr_create_2dst_2src((dc), OP_fxch, opnd_create_reg(REG_ST0), (f), \ opnd_create_reg(REG_ST0), (f))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit register operand, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| f | The opnd_t explicit source operand for the instruction, which must be a floating point register (opnd_create_reg()). |
| #define INSTR_CREATE_fxrstor | ( | dc, | |||
| s | ) | instr_create_0dst_1src((dc), OP_fxrstor, (s)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| s | The opnd_t explicit source operand for the instruction, which can be created with OPND_CREATE_MEM_fxrstor() to get the appropriate operand size. |
| #define INSTR_CREATE_fxsave | ( | dc, | |||
| d | ) | instr_create_1dst_0src((dc), OP_fxsave, (d)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. | |
| d | The opnd_t explicit destination operand for the instruction, which can be created with OPND_CREATE_MEM_fxsave() to get the appropriate operand size. |
| #define INSTR_CREATE_fxtract | ( | dc | ) | instr_create_1dst_1src((dc), OP_fxtract, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST0)) |
| #define INSTR_CREATE_fyl2x | ( | dc | ) |
instr_create_2dst_2src((dc), OP_fyl2x, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1), \ opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. |
| #define INSTR_CREATE_fyl2xp1 | ( | dc | ) |
instr_create_2dst_2src((dc), OP_fyl2xp1, opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1), \ opnd_create_reg(REG_ST0), opnd_create_reg(REG_ST1))
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx, automatically supplying any implicit operands.
| dc | The void * dcontext used to allocate memory for the instr_t. |
| #define INSTR_CREATE_haddpd | ( | dc, | |||
| d, | |||||
| s | ) | instr_create_1dst_2src((dc), OP_haddpd, (d), (s), (d)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| #define INSTR_CREATE_haddps | ( | dc, | |||
| d, | |||||
| s | ) | instr_create_1dst_2src((dc), OP_haddps, (d), (s), (d)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| #define INSTR_CREATE_hlt | ( | dc | ) | instr_create_0dst_0src((dc), OP_hlt) |
| #define INSTR_CREATE_hsubpd | ( | dc, | |||
| d, | |||||
| s | ) | instr_create_1dst_2src((dc), OP_hsubpd, (d), (s), (d)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| #define INSTR_CREATE_hsubps | ( | dc, | |||
| d, | |||||
| s | ) | instr_create_1dst_2src((dc), OP_hsubps, (d), (s), (d)) |
This INSTR_CREATE_xxx macro creates an instr_t with opcode OP_xxx and the given explicit operands, automatically supplying any implicit operands.
| #define INSTR_CREATE_idiv_1 | ( | dc, | |||
| s | ) | instr_create_2dst_2src((dc), OP_idiv, opnd_create_reg(REG_AH), opnd_create_reg(REG_AL), (s), opnd_create_reg(REG_AX)) |
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).
| #define INSTR_CREATE_idiv_4 | ( | dc, | |||
| s | ) |
instr_create_2dst_3src((dc), OP_idiv, opnd_create_reg(REG_EDX), opnd_create_reg(REG_EAX), \ (s), opnd_create_reg(REG_EDX), opnd_create_reg(REG_EAX))
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 iden