Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
xbyak_mnemonic.h
Go to the documentation of this file.
1const char *getVersionString() const { return "5.63"; }
2void adc(const Operand& op, uint32 imm) { opRM_I(op, imm, 0x10, 2); }
3void adc(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x10); }
4void adcx(const Reg32e& reg, const Operand& op) { opGen(reg, op, 0xF6, 0x66, isREG32_REG32orMEM, NONE, 0x38); }
5void add(const Operand& op, uint32 imm) { opRM_I(op, imm, 0x00, 0); }
6void add(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x00); }
7void addpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x58, 0x66, isXMM_XMMorMEM); }
8void addps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x58, 0x100, isXMM_XMMorMEM); }
9void addsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x58, 0xF2, isXMM_XMMorMEM); }
10void addss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x58, 0xF3, isXMM_XMMorMEM); }
11void addsubpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xD0, 0x66, isXMM_XMMorMEM); }
12void addsubps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xD0, 0xF2, isXMM_XMMorMEM); }
13void adox(const Reg32e& reg, const Operand& op) { opGen(reg, op, 0xF6, 0xF3, isREG32_REG32orMEM, NONE, 0x38); }
14void aesdec(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDE, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
15void aesdeclast(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDF, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
16void aesenc(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDC, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
17void aesenclast(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDD, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
18void aesimc(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDB, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
19void aeskeygenassist(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0xDF, 0x66, isXMM_XMMorMEM, imm, 0x3A); }
20void and_(const Operand& op, uint32 imm) { opRM_I(op, imm, 0x20, 4); }
21void and_(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x20); }
22void andn(const Reg32e& r1, const Reg32e& r2, const Operand& op) { opGpr(r1, r2, op, T_0F38, 0xf2, true); }
23void andnpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x55, 0x66, isXMM_XMMorMEM); }
24void andnps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x55, 0x100, isXMM_XMMorMEM); }
25void andpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x54, 0x66, isXMM_XMMorMEM); }
26void andps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x54, 0x100, isXMM_XMMorMEM); }
27void bextr(const Reg32e& r1, const Operand& op, const Reg32e& r2) { opGpr(r1, op, r2, T_0F38, 0xf7, false); }
28void blendpd(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x0D, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
29void blendps(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x0C, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
30void blendvpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x15, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
31void blendvps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x14, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
32void blsi(const Reg32e& r, const Operand& op) { opGpr(Reg32e(3, r.getBit()), op, r, T_0F38, 0xf3, false); }
33void blsmsk(const Reg32e& r, const Operand& op) { opGpr(Reg32e(2, r.getBit()), op, r, T_0F38, 0xf3, false); }
34void blsr(const Reg32e& r, const Operand& op) { opGpr(Reg32e(1, r.getBit()), op, r, T_0F38, 0xf3, false); }
35void bnd() { db(0xF2); }
36void bndcl(const BoundsReg& bnd, const Operand& op) { db(0xF3); opR_ModM(op, i32e, bnd.getIdx(), 0x0F, 0x1A, NONE, !op.isMEM()); }
37void bndcn(const BoundsReg& bnd, const Operand& op) { db(0xF2); opR_ModM(op, i32e, bnd.getIdx(), 0x0F, 0x1B, NONE, !op.isMEM()); }
38void bndcu(const BoundsReg& bnd, const Operand& op) { db(0xF2); opR_ModM(op, i32e, bnd.getIdx(), 0x0F, 0x1A, NONE, !op.isMEM()); }
39void bndldx(const BoundsReg& bnd, const Address& addr) { opMIB(addr, bnd, 0x0F, 0x1A); }
40void bndmk(const BoundsReg& bnd, const Address& addr) { db(0xF3); opModM(addr, bnd, 0x0F, 0x1B); }
41void bndmov(const Address& addr, const BoundsReg& bnd) { db(0x66); opModM(addr, bnd, 0x0F, 0x1B); }
42void bndmov(const BoundsReg& bnd, const Operand& op) { db(0x66); opModRM(bnd, op, op.isBNDREG(), op.isMEM(), 0x0F, 0x1A); }
43void bndstx(const Address& addr, const BoundsReg& bnd) { opMIB(addr, bnd, 0x0F, 0x1B); }
44void bsf(const Reg&reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0xBC); }
45void bsr(const Reg&reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0xBD); }
46void bswap(const Reg32e& reg) { opModR(Reg32(1), reg, 0x0F); }
47void bt(const Operand& op, const Reg& reg) { opModRM(reg, op, op.isREG(16|32|64) && op.getBit() == reg.getBit(), op.isMEM(), 0x0f, 0xA3); }
48void bt(const Operand& op, uint8 imm) { opR_ModM(op, 16|32|64, 4, 0x0f, 0xba, NONE, false, 1); db(imm); }
49void btc(const Operand& op, const Reg& reg) { opModRM(reg, op, op.isREG(16|32|64) && op.getBit() == reg.getBit(), op.isMEM(), 0x0f, 0xBB); }
50void btc(const Operand& op, uint8 imm) { opR_ModM(op, 16|32|64, 7, 0x0f, 0xba, NONE, false, 1); db(imm); }
51void btr(const Operand& op, const Reg& reg) { opModRM(reg, op, op.isREG(16|32|64) && op.getBit() == reg.getBit(), op.isMEM(), 0x0f, 0xB3); }
52void btr(const Operand& op, uint8 imm) { opR_ModM(op, 16|32|64, 6, 0x0f, 0xba, NONE, false, 1); db(imm); }
53void bts(const Operand& op, const Reg& reg) { opModRM(reg, op, op.isREG(16|32|64) && op.getBit() == reg.getBit(), op.isMEM(), 0x0f, 0xAB); }
54void bts(const Operand& op, uint8 imm) { opR_ModM(op, 16|32|64, 5, 0x0f, 0xba, NONE, false, 1); db(imm); }
55void bzhi(const Reg32e& r1, const Operand& op, const Reg32e& r2) { opGpr(r1, op, r2, T_0F38, 0xf5, false); }
56void cbw() { db(0x66); db(0x98); }
57void cdq() { db(0x99); }
58void clc() { db(0xF8); }
59void cld() { db(0xFC); }
60void clflush(const Address& addr) { opModM(addr, Reg32(7), 0x0F, 0xAE); }
61void cli() { db(0xFA); }
62void cmc() { db(0xF5); }
63void cmova(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 7); }//-V524
64void cmovae(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 3); }//-V524
65void cmovb(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 2); }//-V524
66void cmovbe(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 6); }//-V524
67void cmovc(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 2); }//-V524
68void cmove(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 4); }//-V524
69void cmovg(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 15); }//-V524
70void cmovge(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 13); }//-V524
71void cmovl(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 12); }//-V524
72void cmovle(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 14); }//-V524
73void cmovna(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 6); }//-V524
74void cmovnae(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 2); }//-V524
75void cmovnb(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 3); }//-V524
76void cmovnbe(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 7); }//-V524
77void cmovnc(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 3); }//-V524
78void cmovne(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 5); }//-V524
79void cmovng(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 14); }//-V524
80void cmovnge(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 12); }//-V524
81void cmovnl(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 13); }//-V524
82void cmovnle(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 15); }//-V524
83void cmovno(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 1); }//-V524
84void cmovnp(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 11); }//-V524
85void cmovns(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 9); }//-V524
86void cmovnz(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 5); }//-V524
87void cmovo(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 0); }//-V524
88void cmovp(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 10); }//-V524
89void cmovpe(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 10); }//-V524
90void cmovpo(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 11); }//-V524
91void cmovs(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 8); }//-V524
92void cmovz(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 4); }//-V524
93void cmp(const Operand& op, uint32 imm) { opRM_I(op, imm, 0x38, 7); }
94void cmp(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x38); }
95void cmpeqpd(const Xmm& x, const Operand& op) { cmppd(x, op, 0); }
96void cmpeqps(const Xmm& x, const Operand& op) { cmpps(x, op, 0); }
97void cmpeqsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 0); }
98void cmpeqss(const Xmm& x, const Operand& op) { cmpss(x, op, 0); }
99void cmplepd(const Xmm& x, const Operand& op) { cmppd(x, op, 2); }
100void cmpleps(const Xmm& x, const Operand& op) { cmpps(x, op, 2); }
101void cmplesd(const Xmm& x, const Operand& op) { cmpsd(x, op, 2); }
102void cmpless(const Xmm& x, const Operand& op) { cmpss(x, op, 2); }
103void cmpltpd(const Xmm& x, const Operand& op) { cmppd(x, op, 1); }
104void cmpltps(const Xmm& x, const Operand& op) { cmpps(x, op, 1); }
105void cmpltsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 1); }
106void cmpltss(const Xmm& x, const Operand& op) { cmpss(x, op, 1); }
107void cmpneqpd(const Xmm& x, const Operand& op) { cmppd(x, op, 4); }
108void cmpneqps(const Xmm& x, const Operand& op) { cmpps(x, op, 4); }
109void cmpneqsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 4); }
110void cmpneqss(const Xmm& x, const Operand& op) { cmpss(x, op, 4); }
111void cmpnlepd(const Xmm& x, const Operand& op) { cmppd(x, op, 6); }
112void cmpnleps(const Xmm& x, const Operand& op) { cmpps(x, op, 6); }
113void cmpnlesd(const Xmm& x, const Operand& op) { cmpsd(x, op, 6); }
114void cmpnless(const Xmm& x, const Operand& op) { cmpss(x, op, 6); }
115void cmpnltpd(const Xmm& x, const Operand& op) { cmppd(x, op, 5); }
116void cmpnltps(const Xmm& x, const Operand& op) { cmpps(x, op, 5); }
117void cmpnltsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 5); }
118void cmpnltss(const Xmm& x, const Operand& op) { cmpss(x, op, 5); }
119void cmpordpd(const Xmm& x, const Operand& op) { cmppd(x, op, 7); }
120void cmpordps(const Xmm& x, const Operand& op) { cmpps(x, op, 7); }
121void cmpordsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 7); }
122void cmpordss(const Xmm& x, const Operand& op) { cmpss(x, op, 7); }
123void cmppd(const Xmm& xmm, const Operand& op, uint8 imm8) { opGen(xmm, op, 0xC2, 0x66, isXMM_XMMorMEM, imm8); }
124void cmpps(const Xmm& xmm, const Operand& op, uint8 imm8) { opGen(xmm, op, 0xC2, 0x100, isXMM_XMMorMEM, imm8); }
125void cmpsd(const Xmm& xmm, const Operand& op, uint8 imm8) { opGen(xmm, op, 0xC2, 0xF2, isXMM_XMMorMEM, imm8); }
126void cmpss(const Xmm& xmm, const Operand& op, uint8 imm8) { opGen(xmm, op, 0xC2, 0xF3, isXMM_XMMorMEM, imm8); }
127void cmpunordpd(const Xmm& x, const Operand& op) { cmppd(x, op, 3); }
128void cmpunordps(const Xmm& x, const Operand& op) { cmpps(x, op, 3); }
129void cmpunordsd(const Xmm& x, const Operand& op) { cmpsd(x, op, 3); }
130void cmpunordss(const Xmm& x, const Operand& op) { cmpss(x, op, 3); }
131void cmpxchg(const Operand& op, const Reg& reg) { opModRM(reg, op, (op.isREG() && reg.isREG() && op.getBit() == reg.getBit()), op.isMEM(), 0x0F, 0xB0 | (reg.isBit(8) ? 0 : 1)); }
132void cmpxchg8b(const Address& addr) { opModM(addr, Reg32(1), 0x0F, 0xC7); }
133void comisd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2F, 0x66, isXMM_XMMorMEM); }
134void comiss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2F, 0x100, isXMM_XMMorMEM); }
135void cpuid() { db(0x0F); db(0xA2); }
136void crc32(const Reg32e& reg, const Operand& op) { if (reg.isBit(32) && op.isBit(16)) db(0x66); db(0xF2); opModRM(reg, op, op.isREG(), op.isMEM(), 0x0F, 0x38, 0xF0 | (op.isBit(8) ? 0 : 1)); }
137void cvtdq2pd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xE6, 0xF3, isXMM_XMMorMEM); }
138void cvtdq2ps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5B, 0x100, isXMM_XMMorMEM); }
139void cvtpd2dq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xE6, 0xF2, isXMM_XMMorMEM); }
140void cvtpd2pi(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2D, 0x66, isMMX_XMMorMEM); }
141void cvtpd2ps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5A, 0x66, isXMM_XMMorMEM); }
142void cvtpi2pd(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2A, 0x66, isXMM_MMXorMEM); }
143void cvtpi2ps(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2A, 0x100, isXMM_MMXorMEM); }
144void cvtps2dq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5B, 0x66, isXMM_XMMorMEM); }
145void cvtps2pd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5A, 0x100, isXMM_XMMorMEM); }
146void cvtps2pi(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2D, 0x100, isMMX_XMMorMEM); }
147void cvtsd2si(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2D, 0xF2, isREG32_XMMorMEM); }
148void cvtsd2ss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5A, 0xF2, isXMM_XMMorMEM); }
149void cvtsi2sd(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2A, 0xF2, isXMM_REG32orMEM); }
150void cvtsi2ss(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2A, 0xF3, isXMM_REG32orMEM); }
151void cvtss2sd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5A, 0xF3, isXMM_XMMorMEM); }
152void cvtss2si(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2D, 0xF3, isREG32_XMMorMEM); }
153void cvttpd2dq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xE6, 0x66, isXMM_XMMorMEM); }
154void cvttpd2pi(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2C, 0x66, isMMX_XMMorMEM); }
155void cvttps2dq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5B, 0xF3, isXMM_XMMorMEM); }
156void cvttps2pi(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2C, 0x100, isMMX_XMMorMEM); }
157void cvttsd2si(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2C, 0xF2, isREG32_XMMorMEM); }
158void cvttss2si(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2C, 0xF3, isREG32_XMMorMEM); }
159void cwd() { db(0x66); db(0x99); }
160void cwde() { db(0x98); }
161void dec(const Operand& op) { opIncDec(op, 0x48, 1); }
162void div(const Operand& op) { opR_ModM(op, 0, 6, 0xF6); }
163void divpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5E, 0x66, isXMM_XMMorMEM); }
164void divps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5E, 0x100, isXMM_XMMorMEM); }
165void divsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5E, 0xF2, isXMM_XMMorMEM); }
166void divss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5E, 0xF3, isXMM_XMMorMEM); }
167void dppd(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x41, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
168void dpps(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x40, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
169void emms() { db(0x0F); db(0x77); }
170void extractps(const Operand& op, const Xmm& xmm, uint8 imm) { opExt(op, xmm, 0x17, imm); }
171void f2xm1() { db(0xD9); db(0xF0); }
172void fabs() { db(0xD9); db(0xE1); }
173void fadd(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 0, 0); }
174void fadd(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8C0, 0xDCC0); }
175void fadd(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8C0, 0xDCC0); }
176void faddp() { db(0xDE); db(0xC1); }
177void faddp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEC0); }
178void faddp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x0000, 0xDEC0); }
179void fchs() { db(0xD9); db(0xE0); }
180void fcmovb(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDAC0, 0x00C0); }
181void fcmovb(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDAC0, 0x00C0); }
182void fcmovbe(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDAD0, 0x00D0); }
183void fcmovbe(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDAD0, 0x00D0); }
184void fcmove(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDAC8, 0x00C8); }
185void fcmove(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDAC8, 0x00C8); }
186void fcmovnb(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBC0, 0x00C0); }
187void fcmovnb(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDBC0, 0x00C0); }
188void fcmovnbe(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBD0, 0x00D0); }
189void fcmovnbe(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDBD0, 0x00D0); }
190void fcmovne(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBC8, 0x00C8); }
191void fcmovne(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDBC8, 0x00C8); }
192void fcmovnu(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBD8, 0x00D8); }
193void fcmovnu(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDBD8, 0x00D8); }
194void fcmovu(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDAD8, 0x00D8); }
195void fcmovu(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDAD8, 0x00D8); }
196void fcom() { db(0xD8); db(0xD1); }
197void fcom(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 2, 0); }
198void fcom(const Fpu& reg) { opFpu(reg, 0xD8, 0xD0); }
199void fcomi(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBF0, 0x00F0); }
200void fcomi(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDBF0, 0x00F0); }
201void fcomip(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDFF0, 0x00F0); }
202void fcomip(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDFF0, 0x00F0); }
203void fcomp() { db(0xD8); db(0xD9); }
204void fcomp(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 3, 0); }
205void fcomp(const Fpu& reg) { opFpu(reg, 0xD8, 0xD8); }
206void fcompp() { db(0xDE); db(0xD9); }
207void fcos() { db(0xD9); db(0xFF); }
208void fdecstp() { db(0xD9); db(0xF6); }
209void fdiv(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 6, 0); }
210void fdiv(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8F0, 0xDCF8); }
211void fdiv(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8F0, 0xDCF8); }
212void fdivp() { db(0xDE); db(0xF9); }
213void fdivp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEF8); }
214void fdivp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x0000, 0xDEF8); }
215void fdivr(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 7, 0); }
216void fdivr(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8F8, 0xDCF0); }
217void fdivr(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8F8, 0xDCF0); }
218void fdivrp() { db(0xDE); db(0xF1); }
219void fdivrp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEF0); }
220void fdivrp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x0000, 0xDEF0); }
221void ffree(const Fpu& reg) { opFpu(reg, 0xDD, 0xC0); }
222void fiadd(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 0, 0); }
223void ficom(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 2, 0); }
224void ficomp(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 3, 0); }
225void fidiv(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 6, 0); }
226void fidivr(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 7, 0); }
227void fild(const Address& addr) { opFpuMem(addr, 0xDF, 0xDB, 0xDF, 0, 5); }
228void fimul(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 1, 0); }
229void fincstp() { db(0xD9); db(0xF7); }
230void finit() { db(0x9B); db(0xDB); db(0xE3); }
231void fist(const Address& addr) { opFpuMem(addr, 0xDF, 0xDB, 0x00, 2, 0); }
232void fistp(const Address& addr) { opFpuMem(addr, 0xDF, 0xDB, 0xDF, 3, 7); }
233void fisttp(const Address& addr) { opFpuMem(addr, 0xDF, 0xDB, 0xDD, 1, 0); }
234void fisub(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 4, 0); }
235void fisubr(const Address& addr) { opFpuMem(addr, 0xDE, 0xDA, 0x00, 5, 0); }
236void fld(const Address& addr) { opFpuMem(addr, 0x00, 0xD9, 0xDD, 0, 0); }
237void fld(const Fpu& reg) { opFpu(reg, 0xD9, 0xC0); }
238void fld1() { db(0xD9); db(0xE8); }
239void fldcw(const Address& addr) { opModM(addr, Reg32(5), 0xD9, 0x100); }
240void fldl2e() { db(0xD9); db(0xEA); }
241void fldl2t() { db(0xD9); db(0xE9); }
242void fldlg2() { db(0xD9); db(0xEC); }
243void fldln2() { db(0xD9); db(0xED); }
244void fldpi() { db(0xD9); db(0xEB); }
245void fldz() { db(0xD9); db(0xEE); }
246void fmul(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 1, 0); }
247void fmul(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8C8, 0xDCC8); }
248void fmul(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8C8, 0xDCC8); }
249void fmulp() { db(0xDE); db(0xC9); }
250void fmulp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEC8); }
251void fmulp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x0000, 0xDEC8); }
252void fninit() { db(0xDB); db(0xE3); }
253void fnop() { db(0xD9); db(0xD0); }
254void fpatan() { db(0xD9); db(0xF3); }
255void fprem() { db(0xD9); db(0xF8); }
256void fprem1() { db(0xD9); db(0xF5); }
257void fptan() { db(0xD9); db(0xF2); }
258void frndint() { db(0xD9); db(0xFC); }
259void fscale() { db(0xD9); db(0xFD); }
260void fsin() { db(0xD9); db(0xFE); }
261void fsincos() { db(0xD9); db(0xFB); }
262void fsqrt() { db(0xD9); db(0xFA); }
263void fst(const Address& addr) { opFpuMem(addr, 0x00, 0xD9, 0xDD, 2, 0); }
264void fst(const Fpu& reg) { opFpu(reg, 0xDD, 0xD0); }
265void fstcw(const Address& addr) { db(0x9B); opModM(addr, Reg32(7), 0xD9, NONE); }
266void fstp(const Address& addr) { opFpuMem(addr, 0x00, 0xD9, 0xDD, 3, 0); }
267void fstp(const Fpu& reg) { opFpu(reg, 0xDD, 0xD8); }
268void fsub(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 4, 0); }
269void fsub(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8E0, 0xDCE8); }
270void fsub(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8E0, 0xDCE8); }
271void fsubp() { db(0xDE); db(0xE9); }
272void fsubp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEE8); }
273void fsubp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x0000, 0xDEE8); }
274void fsubr(const Address& addr) { opFpuMem(addr, 0x00, 0xD8, 0xDC, 5, 0); }
275void fsubr(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xD8E8, 0xDCE0); }
276void fsubr(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xD8E8, 0xDCE0); }
277void fsubrp() { db(0xDE); db(0xE1); }
278void fsubrp(const Fpu& reg1) { opFpuFpu(reg1, st0, 0x0000, 0xDEE0); }
279void fsubrp(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0x0000, 0xDEE0); }
280void ftst() { db(0xD9); db(0xE4); }
281void fucom() { db(0xDD); db(0xE1); }
282void fucom(const Fpu& reg) { opFpu(reg, 0xDD, 0xE0); }
283void fucomi(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDBE8, 0x00E8); }
284void fucomi(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDBE8, 0x00E8); }
285void fucomip(const Fpu& reg1) { opFpuFpu(st0, reg1, 0xDFE8, 0x00E8); }
286void fucomip(const Fpu& reg1, const Fpu& reg2) { opFpuFpu(reg1, reg2, 0xDFE8, 0x00E8); }
287void fucomp() { db(0xDD); db(0xE9); }
288void fucomp(const Fpu& reg) { opFpu(reg, 0xDD, 0xE8); }
289void fucompp() { db(0xDA); db(0xE9); }
290void fwait() { db(0x9B); }
291void fxam() { db(0xD9); db(0xE5); }
292void fxch() { db(0xD9); db(0xC9); }
293void fxch(const Fpu& reg) { opFpu(reg, 0xD9, 0xC8); }
294void fxtract() { db(0xD9); db(0xF4); }
295void fyl2x() { db(0xD9); db(0xF1); }
296void fyl2xp1() { db(0xD9); db(0xF9); }
297void gf2p8affineinvqb(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0xCF, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
298void gf2p8affineqb(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0xCE, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
299void gf2p8mulb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xCF, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
300void haddpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x7C, 0x66, isXMM_XMMorMEM); }
301void haddps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x7C, 0xF2, isXMM_XMMorMEM); }
302void hsubpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x7D, 0x66, isXMM_XMMorMEM); }
303void hsubps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x7D, 0xF2, isXMM_XMMorMEM); }
304void idiv(const Operand& op) { opR_ModM(op, 0, 7, 0xF6); }
305void imul(const Operand& op) { opR_ModM(op, 0, 5, 0xF6); }
306void inc(const Operand& op) { opIncDec(op, 0x40, 0); }
307void insertps(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0x21, 0x66, isXMM_XMMorMEM, imm, 0x3A); }
308void ja(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x77, 0x87, 0x0F); }//-V524
309void ja(const char *label, LabelType type = T_AUTO) { ja(std::string(label), type); }//-V524
310void ja(const void *addr) { opJmpAbs(addr, T_NEAR, 0x77, 0x87, 0x0F); }//-V524
311void ja(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x77, 0x87, 0x0F); }//-V524
312void jae(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }//-V524
313void jae(const char *label, LabelType type = T_AUTO) { jae(std::string(label), type); }//-V524
314void jae(const void *addr) { opJmpAbs(addr, T_NEAR, 0x73, 0x83, 0x0F); }//-V524
315void jae(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }//-V524
316void jb(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }//-V524
317void jb(const char *label, LabelType type = T_AUTO) { jb(std::string(label), type); }//-V524
318void jb(const void *addr) { opJmpAbs(addr, T_NEAR, 0x72, 0x82, 0x0F); }//-V524
319void jb(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }//-V524
320void jbe(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x76, 0x86, 0x0F); }//-V524
321void jbe(const char *label, LabelType type = T_AUTO) { jbe(std::string(label), type); }//-V524
322void jbe(const void *addr) { opJmpAbs(addr, T_NEAR, 0x76, 0x86, 0x0F); }//-V524
323void jbe(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x76, 0x86, 0x0F); }//-V524
324void jc(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }//-V524
325void jc(const char *label, LabelType type = T_AUTO) { jc(std::string(label), type); }//-V524
326void jc(const void *addr) { opJmpAbs(addr, T_NEAR, 0x72, 0x82, 0x0F); }//-V524
327void jc(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }//-V524
328void je(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x74, 0x84, 0x0F); }//-V524
329void je(const char *label, LabelType type = T_AUTO) { je(std::string(label), type); }//-V524
330void je(const void *addr) { opJmpAbs(addr, T_NEAR, 0x74, 0x84, 0x0F); }//-V524
331void je(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x74, 0x84, 0x0F); }//-V524
332void jg(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7F, 0x8F, 0x0F); }//-V524
333void jg(const char *label, LabelType type = T_AUTO) { jg(std::string(label), type); }//-V524
334void jg(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7F, 0x8F, 0x0F); }//-V524
335void jg(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7F, 0x8F, 0x0F); }//-V524
336void jge(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7D, 0x8D, 0x0F); }//-V524
337void jge(const char *label, LabelType type = T_AUTO) { jge(std::string(label), type); }//-V524
338void jge(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7D, 0x8D, 0x0F); }//-V524
339void jge(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7D, 0x8D, 0x0F); }//-V524
340void jl(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7C, 0x8C, 0x0F); }//-V524
341void jl(const char *label, LabelType type = T_AUTO) { jl(std::string(label), type); }//-V524
342void jl(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7C, 0x8C, 0x0F); }//-V524
343void jl(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7C, 0x8C, 0x0F); }//-V524
344void jle(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7E, 0x8E, 0x0F); }//-V524
345void jle(const char *label, LabelType type = T_AUTO) { jle(std::string(label), type); }//-V524
346void jle(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7E, 0x8E, 0x0F); }//-V524
347void jle(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7E, 0x8E, 0x0F); }//-V524
348void jna(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x76, 0x86, 0x0F); }//-V524
349void jna(const char *label, LabelType type = T_AUTO) { jna(std::string(label), type); }//-V524
350void jna(const void *addr) { opJmpAbs(addr, T_NEAR, 0x76, 0x86, 0x0F); }//-V524
351void jna(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x76, 0x86, 0x0F); }//-V524
352void jnae(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }//-V524
353void jnae(const char *label, LabelType type = T_AUTO) { jnae(std::string(label), type); }//-V524
354void jnae(const void *addr) { opJmpAbs(addr, T_NEAR, 0x72, 0x82, 0x0F); }//-V524
355void jnae(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }//-V524
356void jnb(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }//-V524
357void jnb(const char *label, LabelType type = T_AUTO) { jnb(std::string(label), type); }//-V524
358void jnb(const void *addr) { opJmpAbs(addr, T_NEAR, 0x73, 0x83, 0x0F); }//-V524
359void jnb(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }//-V524
360void jnbe(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x77, 0x87, 0x0F); }//-V524
361void jnbe(const char *label, LabelType type = T_AUTO) { jnbe(std::string(label), type); }//-V524
362void jnbe(const void *addr) { opJmpAbs(addr, T_NEAR, 0x77, 0x87, 0x0F); }//-V524
363void jnbe(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x77, 0x87, 0x0F); }//-V524
364void jnc(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }//-V524
365void jnc(const char *label, LabelType type = T_AUTO) { jnc(std::string(label), type); }//-V524
366void jnc(const void *addr) { opJmpAbs(addr, T_NEAR, 0x73, 0x83, 0x0F); }//-V524
367void jnc(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }//-V524
368void jne(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x75, 0x85, 0x0F); }//-V524
369void jne(const char *label, LabelType type = T_AUTO) { jne(std::string(label), type); }//-V524
370void jne(const void *addr) { opJmpAbs(addr, T_NEAR, 0x75, 0x85, 0x0F); }//-V524
371void jne(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x75, 0x85, 0x0F); }//-V524
372void jng(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7E, 0x8E, 0x0F); }//-V524
373void jng(const char *label, LabelType type = T_AUTO) { jng(std::string(label), type); }//-V524
374void jng(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7E, 0x8E, 0x0F); }//-V524
375void jng(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7E, 0x8E, 0x0F); }//-V524
376void jnge(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7C, 0x8C, 0x0F); }//-V524
377void jnge(const char *label, LabelType type = T_AUTO) { jnge(std::string(label), type); }//-V524
378void jnge(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7C, 0x8C, 0x0F); }//-V524
379void jnge(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7C, 0x8C, 0x0F); }//-V524
380void jnl(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7D, 0x8D, 0x0F); }//-V524
381void jnl(const char *label, LabelType type = T_AUTO) { jnl(std::string(label), type); }//-V524
382void jnl(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7D, 0x8D, 0x0F); }//-V524
383void jnl(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7D, 0x8D, 0x0F); }//-V524
384void jnle(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7F, 0x8F, 0x0F); }//-V524
385void jnle(const char *label, LabelType type = T_AUTO) { jnle(std::string(label), type); }//-V524
386void jnle(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7F, 0x8F, 0x0F); }//-V524
387void jnle(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7F, 0x8F, 0x0F); }//-V524
388void jno(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x71, 0x81, 0x0F); }//-V524
389void jno(const char *label, LabelType type = T_AUTO) { jno(std::string(label), type); }//-V524
390void jno(const void *addr) { opJmpAbs(addr, T_NEAR, 0x71, 0x81, 0x0F); }//-V524
391void jno(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x71, 0x81, 0x0F); }//-V524
392void jnp(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7B, 0x8B, 0x0F); }//-V524
393void jnp(const char *label, LabelType type = T_AUTO) { jnp(std::string(label), type); }//-V524
394void jnp(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7B, 0x8B, 0x0F); }//-V524
395void jnp(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7B, 0x8B, 0x0F); }//-V524
396void jns(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x79, 0x89, 0x0F); }//-V524
397void jns(const char *label, LabelType type = T_AUTO) { jns(std::string(label), type); }//-V524
398void jns(const void *addr) { opJmpAbs(addr, T_NEAR, 0x79, 0x89, 0x0F); }//-V524
399void jns(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x79, 0x89, 0x0F); }//-V524
400void jnz(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x75, 0x85, 0x0F); }//-V524
401void jnz(const char *label, LabelType type = T_AUTO) { jnz(std::string(label), type); }//-V524
402void jnz(const void *addr) { opJmpAbs(addr, T_NEAR, 0x75, 0x85, 0x0F); }//-V524
403void jnz(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x75, 0x85, 0x0F); }//-V524
404void jo(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x70, 0x80, 0x0F); }//-V524
405void jo(const char *label, LabelType type = T_AUTO) { jo(std::string(label), type); }//-V524
406void jo(const void *addr) { opJmpAbs(addr, T_NEAR, 0x70, 0x80, 0x0F); }//-V524
407void jo(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x70, 0x80, 0x0F); }//-V524
408void jp(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7A, 0x8A, 0x0F); }//-V524
409void jp(const char *label, LabelType type = T_AUTO) { jp(std::string(label), type); }//-V524
410void jp(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7A, 0x8A, 0x0F); }//-V524
411void jp(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7A, 0x8A, 0x0F); }//-V524
412void jpe(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7A, 0x8A, 0x0F); }//-V524
413void jpe(const char *label, LabelType type = T_AUTO) { jpe(std::string(label), type); }//-V524
414void jpe(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7A, 0x8A, 0x0F); }//-V524
415void jpe(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7A, 0x8A, 0x0F); }//-V524
416void jpo(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7B, 0x8B, 0x0F); }//-V524
417void jpo(const char *label, LabelType type = T_AUTO) { jpo(std::string(label), type); }//-V524
418void jpo(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7B, 0x8B, 0x0F); }//-V524
419void jpo(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7B, 0x8B, 0x0F); }//-V524
420void js(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x78, 0x88, 0x0F); }//-V524
421void js(const char *label, LabelType type = T_AUTO) { js(std::string(label), type); }//-V524
422void js(const void *addr) { opJmpAbs(addr, T_NEAR, 0x78, 0x88, 0x0F); }//-V524
423void js(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x78, 0x88, 0x0F); }//-V524
424void jz(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x74, 0x84, 0x0F); }//-V524
425void jz(const char *label, LabelType type = T_AUTO) { jz(std::string(label), type); }//-V524
426void jz(const void *addr) { opJmpAbs(addr, T_NEAR, 0x74, 0x84, 0x0F); }//-V524
427void jz(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x74, 0x84, 0x0F); }//-V524
428void lahf() { db(0x9F); }
429void lddqu(const Xmm& xmm, const Address& addr) { db(0xF2); opModM(addr, xmm, 0x0F, 0xF0); }
430void ldmxcsr(const Address& addr) { opModM(addr, Reg32(2), 0x0F, 0xAE); }
431void lea(const Reg& reg, const Address& addr) { if (!reg.isBit(16 | i32e)) throw Error(ERR_BAD_SIZE_OF_REGISTER); opModM(addr, reg, 0x8D); }
432void lfence() { db(0x0F); db(0xAE); db(0xE8); }
433void lock() { db(0xF0); }
434void lzcnt(const Reg&reg, const Operand& op) { opSp1(reg, op, 0xF3, 0x0F, 0xBD); }
435void maskmovdqu(const Xmm& reg1, const Xmm& reg2) { db(0x66); opModR(reg1, reg2, 0x0F, 0xF7); }
436void maskmovq(const Mmx& reg1, const Mmx& reg2) { if (!reg1.isMMX() || !reg2.isMMX()) throw Error(ERR_BAD_COMBINATION); opModR(reg1, reg2, 0x0F, 0xF7); }
437void maxpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5F, 0x66, isXMM_XMMorMEM); }
438void maxps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5F, 0x100, isXMM_XMMorMEM); }
439void maxsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5F, 0xF2, isXMM_XMMorMEM); }
440void maxss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5F, 0xF3, isXMM_XMMorMEM); }
441void mfence() { db(0x0F); db(0xAE); db(0xF0); }
442void minpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5D, 0x66, isXMM_XMMorMEM); }
443void minps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5D, 0x100, isXMM_XMMorMEM); }
444void minsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5D, 0xF2, isXMM_XMMorMEM); }
445void minss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5D, 0xF3, isXMM_XMMorMEM); }
446void monitor() { db(0x0F); db(0x01); db(0xC8); }
447void movapd(const Address& addr, const Xmm& xmm) { db(0x66); opModM(addr, xmm, 0x0F, 0x29); }
448void movapd(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x28, 0x66); }
449void movaps(const Address& addr, const Xmm& xmm) { opModM(addr, xmm, 0x0F, 0x29); }
450void movaps(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x28, 0x100); }
451void movbe(const Address& addr, const Reg& reg) { opModM(addr, reg, 0x0F, 0x38, 0xF1); }
452void movbe(const Reg& reg, const Address& addr) { opModM(addr, reg, 0x0F, 0x38, 0xF0); }
453void movd(const Address& addr, const Mmx& mmx) { if (mmx.isXMM()) db(0x66); opModM(addr, mmx, 0x0F, 0x7E); }
454void movd(const Mmx& mmx, const Address& addr) { if (mmx.isXMM()) db(0x66); opModM(addr, mmx, 0x0F, 0x6E); }
455void movd(const Mmx& mmx, const Reg32& reg) { if (mmx.isXMM()) db(0x66); opModR(mmx, reg, 0x0F, 0x6E); }
456void movd(const Reg32& reg, const Mmx& mmx) { if (mmx.isXMM()) db(0x66); opModR(mmx, reg, 0x0F, 0x7E); }
457void movddup(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x12, 0xF2, isXMM_XMMorMEM, NONE, NONE); }
458void movdq2q(const Mmx& mmx, const Xmm& xmm) { db(0xF2); opModR(mmx, xmm, 0x0F, 0xD6); }
459void movdqa(const Address& addr, const Xmm& xmm) { db(0x66); opModM(addr, xmm, 0x0F, 0x7F); }
460void movdqa(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x6F, 0x66); }
461void movdqu(const Address& addr, const Xmm& xmm) { db(0xF3); opModM(addr, xmm, 0x0F, 0x7F); }
462void movdqu(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x6F, 0xF3); }
463void movhlps(const Xmm& reg1, const Xmm& reg2) { opModR(reg1, reg2, 0x0F, 0x12); }
464void movhpd(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2, 0x16, 0x66); }
465void movhps(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2, 0x16, 0x100); }
466void movlhps(const Xmm& reg1, const Xmm& reg2) { opModR(reg1, reg2, 0x0F, 0x16); }
467void movlpd(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2, 0x12, 0x66); }
468void movlps(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2, 0x12, 0x100); }
469void movmskpd(const Reg32e& reg, const Xmm& xmm) { db(0x66); movmskps(reg, xmm); }
470void movmskps(const Reg32e& reg, const Xmm& xmm) { opModR(reg, xmm, 0x0F, 0x50); }
471void movntdq(const Address& addr, const Xmm& reg) { opModM(addr, Reg16(reg.getIdx()), 0x0F, 0xE7); }
472void movntdqa(const Xmm& xmm, const Address& addr) { db(0x66); opModM(addr, xmm, 0x0F, 0x38, 0x2A); }
473void movnti(const Address& addr, const Reg32e& reg) { opModM(addr, reg, 0x0F, 0xC3); }
474void movntpd(const Address& addr, const Xmm& reg) { opModM(addr, Reg16(reg.getIdx()), 0x0F, 0x2B); }
475void movntps(const Address& addr, const Xmm& xmm) { opModM(addr, Mmx(xmm.getIdx()), 0x0F, 0x2B); }
476void movntq(const Address& addr, const Mmx& mmx) { if (!mmx.isMMX()) throw Error(ERR_BAD_COMBINATION); opModM(addr, mmx, 0x0F, 0xE7); }
477void movq(const Address& addr, const Mmx& mmx) { if (mmx.isXMM()) db(0x66); opModM(addr, mmx, 0x0F, mmx.isXMM() ? 0xD6 : 0x7F); }
478void movq(const Mmx& mmx, const Operand& op) { if (mmx.isXMM()) db(0xF3); opModRM(mmx, op, (mmx.getKind() == op.getKind()), op.isMEM(), 0x0F, mmx.isXMM() ? 0x7E : 0x6F); }
479void movq2dq(const Xmm& xmm, const Mmx& mmx) { db(0xF3); opModR(xmm, mmx, 0x0F, 0xD6); }
480void movsb() { db(0xA4); }
481void movsd() { db(0xA5); }
482void movsd(const Address& addr, const Xmm& xmm) { db(0xF2); opModM(addr, xmm, 0x0F, 0x11); }
483void movsd(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x10, 0xF2); }
484void movshdup(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x16, 0xF3, isXMM_XMMorMEM, NONE, NONE); }
485void movsldup(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x12, 0xF3, isXMM_XMMorMEM, NONE, NONE); }
486void movss(const Address& addr, const Xmm& xmm) { db(0xF3); opModM(addr, xmm, 0x0F, 0x11); }
487void movss(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x10, 0xF3); }
488void movsw() { db(0x66); db(0xA5); }
489void movsx(const Reg& reg, const Operand& op) { opMovxx(reg, op, 0xBE); }
490void movupd(const Address& addr, const Xmm& xmm) { db(0x66); opModM(addr, xmm, 0x0F, 0x11); }
491void movupd(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x10, 0x66); }
492void movups(const Address& addr, const Xmm& xmm) { opModM(addr, xmm, 0x0F, 0x11); }
493void movups(const Xmm& xmm, const Operand& op) { opMMX(xmm, op, 0x10, 0x100); }
494void movzx(const Reg& reg, const Operand& op) { opMovxx(reg, op, 0xB6); }
495void mpsadbw(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x42, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
496void mul(const Operand& op) { opR_ModM(op, 0, 4, 0xF6); }
497void mulpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x59, 0x66, isXMM_XMMorMEM); }
498void mulps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x59, 0x100, isXMM_XMMorMEM); }
499void mulsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x59, 0xF2, isXMM_XMMorMEM); }
500void mulss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x59, 0xF3, isXMM_XMMorMEM); }
501void mulx(const Reg32e& r1, const Reg32e& r2, const Operand& op) { opGpr(r1, r2, op, T_F2 | T_0F38, 0xf6, true); }
502void mwait() { db(0x0F); db(0x01); db(0xC9); }
503void neg(const Operand& op) { opR_ModM(op, 0, 3, 0xF6); }
504void not_(const Operand& op) { opR_ModM(op, 0, 2, 0xF6); }
505void or_(const Operand& op, uint32 imm) { opRM_I(op, imm, 0x08, 1); }
506void or_(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x08); }
507void orpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x56, 0x66, isXMM_XMMorMEM); }
508void orps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x56, 0x100, isXMM_XMMorMEM); }
509void pabsb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x1C, 0x66, NONE, 0x38); }
510void pabsd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x1E, 0x66, NONE, 0x38); }
511void pabsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x1D, 0x66, NONE, 0x38); }
512void packssdw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x6B); }
513void packsswb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x63); }
514void packusdw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2B, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
515void packuswb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x67); }
516void paddb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xFC); }
517void paddd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xFE); }
518void paddq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD4); }
519void paddsb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xEC); }
520void paddsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xED); }
521void paddusb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDC); }
522void paddusw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDD); }
523void paddw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xFD); }
524void palignr(const Mmx& mmx, const Operand& op, int imm) { opMMX(mmx, op, 0x0f, 0x66, static_cast<uint8>(imm), 0x3a); }
525void pand(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDB); }
526void pandn(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDF); }
527void pause() { db(0xF3); db(0x90); }
528void pavgb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE0); }
529void pavgw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE3); }
530void pblendvb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x10, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
531void pblendw(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x0E, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
532void pclmulhqhdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op, 0x11); }
533void pclmulhqlqdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op, 0x01); }
534void pclmullqhdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op, 0x10); }
535void pclmullqlqdq(const Xmm& xmm, const Operand& op) { pclmulqdq(xmm, op, 0x00); }
536void pclmulqdq(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x44, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
537void pcmpeqb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x74); }
538void pcmpeqd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x76); }
539void pcmpeqq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x29, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
540void pcmpeqw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x75); }
541void pcmpestri(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0x61, 0x66, isXMM_XMMorMEM, imm, 0x3A); }
542void pcmpestrm(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0x60, 0x66, isXMM_XMMorMEM, imm, 0x3A); }
543void pcmpgtb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x64); }
544void pcmpgtd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x66); }
545void pcmpgtq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x37, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
546void pcmpgtw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x65); }
547void pcmpistri(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0x63, 0x66, isXMM_XMMorMEM, imm, 0x3A); }
548void pcmpistrm(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0x62, 0x66, isXMM_XMMorMEM, imm, 0x3A); }
549void pdep(const Reg32e& r1, const Reg32e& r2, const Operand& op) { opGpr(r1, r2, op, T_F2 | T_0F38, 0xf5, true); }
550void pext(const Reg32e& r1, const Reg32e& r2, const Operand& op) { opGpr(r1, r2, op, T_F3 | T_0F38, 0xf5, true); }
551void pextrb(const Operand& op, const Xmm& xmm, uint8 imm) { opExt(op, xmm, 0x14, imm); }
552void pextrd(const Operand& op, const Xmm& xmm, uint8 imm) { opExt(op, xmm, 0x16, imm); }
553void pextrw(const Operand& op, const Mmx& xmm, uint8 imm) { opExt(op, xmm, 0x15, imm, true); }
554void phaddd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x02, 0x66, NONE, 0x38); }
555void phaddsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x03, 0x66, NONE, 0x38); }
556void phaddw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x01, 0x66, NONE, 0x38); }
557void phminposuw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x41, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
558void phsubd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x06, 0x66, NONE, 0x38); }
559void phsubsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x07, 0x66, NONE, 0x38); }
560void phsubw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x05, 0x66, NONE, 0x38); }
561void pinsrb(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0x20, 0x66, isXMM_REG32orMEM, imm, 0x3A); }
562void pinsrd(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0x22, 0x66, isXMM_REG32orMEM, imm, 0x3A); }
563void pinsrw(const Mmx& mmx, const Operand& op, int imm) { if (!op.isREG(32) && !op.isMEM()) throw Error(ERR_BAD_COMBINATION); opGen(mmx, op, 0xC4, mmx.isXMM() ? 0x66 : NONE, 0, imm); }
564void pmaddubsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x04, 0x66, NONE, 0x38); }
565void pmaddwd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF5); }
566void pmaxsb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3C, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
567void pmaxsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3D, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
568void pmaxsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xEE); }
569void pmaxub(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDE); }
570void pmaxud(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3F, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
571void pmaxuw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3E, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
572void pminsb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x38, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
573void pminsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x39, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
574void pminsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xEA); }
575void pminub(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xDA); }
576void pminud(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3B, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
577void pminuw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3A, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
578void pmovmskb(const Reg32e& reg, const Mmx& mmx) { if (mmx.isXMM()) db(0x66); opModR(reg, mmx, 0x0F, 0xD7); }
579void pmovsxbd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x21, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
580void pmovsxbq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x22, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
581void pmovsxbw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x20, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
582void pmovsxdq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x25, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
583void pmovsxwd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x23, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
584void pmovsxwq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x24, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
585void pmovzxbd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x31, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
586void pmovzxbq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x32, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
587void pmovzxbw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x30, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
588void pmovzxdq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x35, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
589void pmovzxwd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x33, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
590void pmovzxwq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x34, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
591void pmuldq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x28, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
592void pmulhrsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x0B, 0x66, NONE, 0x38); }
593void pmulhuw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE4); }
594void pmulhw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE5); }
595void pmulld(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x40, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
596void pmullw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD5); }
597void pmuludq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF4); }
598void popcnt(const Reg&reg, const Operand& op) { opSp1(reg, op, 0xF3, 0x0F, 0xB8); }
599void popf() { db(0x9D); }
600void por(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xEB); }
601void prefetchnta(const Address& addr) { opModM(addr, Reg32(0), 0x0F, 0x18); }
602void prefetcht0(const Address& addr) { opModM(addr, Reg32(1), 0x0F, 0x18); }
603void prefetcht1(const Address& addr) { opModM(addr, Reg32(2), 0x0F, 0x18); }
604void prefetcht2(const Address& addr) { opModM(addr, Reg32(3), 0x0F, 0x18); }
605void prefetchw(const Address& addr) { opModM(addr, Reg32(1), 0x0F, 0x0D); }
606void prefetchwt1(const Address& addr) { opModM(addr, Reg32(2), 0x0F, 0x0D); }
607void psadbw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF6); }
608void pshufb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x00, 0x66, NONE, 0x38); }
609void pshufd(const Mmx& mmx, const Operand& op, uint8 imm8) { opMMX(mmx, op, 0x70, 0x66, imm8); }
610void pshufhw(const Mmx& mmx, const Operand& op, uint8 imm8) { opMMX(mmx, op, 0x70, 0xF3, imm8); }
611void pshuflw(const Mmx& mmx, const Operand& op, uint8 imm8) { opMMX(mmx, op, 0x70, 0xF2, imm8); }
612void pshufw(const Mmx& mmx, const Operand& op, uint8 imm8) { opMMX(mmx, op, 0x70, 0x00, imm8); }
613void psignb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x08, 0x66, NONE, 0x38); }
614void psignd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x0A, 0x66, NONE, 0x38); }
615void psignw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x09, 0x66, NONE, 0x38); }
616void pslld(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF2); }
617void pslld(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x72, 6); }
618void pslldq(const Xmm& xmm, int imm8) { opMMX_IMM(xmm, imm8, 0x73, 7); }
619void psllq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF3); }
620void psllq(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x73, 6); }
621void psllw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF1); }
622void psllw(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x71, 6); }
623void psrad(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE2); }
624void psrad(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x72, 4); }
625void psraw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE1); }
626void psraw(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x71, 4); }
627void psrld(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD2); }
628void psrld(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x72, 2); }
629void psrldq(const Xmm& xmm, int imm8) { opMMX_IMM(xmm, imm8, 0x73, 3); }
630void psrlq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD3); }
631void psrlq(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x73, 2); }
632void psrlw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD1); }
633void psrlw(const Mmx& mmx, int imm8) { opMMX_IMM(mmx, imm8, 0x71, 2); }
634void psubb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF8); }
635void psubd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xFA); }
636void psubq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xFB); }
637void psubsb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE8); }
638void psubsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xE9); }
639void psubusb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD8); }
640void psubusw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xD9); }
641void psubw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xF9); }
642void ptest(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x17, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
643void punpckhbw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x68); }
644void punpckhdq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x6A); }
645void punpckhqdq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x6D, 0x66, isXMM_XMMorMEM); }
646void punpckhwd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x69); }
647void punpcklbw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x60); }
648void punpckldq(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x62); }
649void punpcklqdq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x6C, 0x66, isXMM_XMMorMEM); }
650void punpcklwd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x61); }
651void pushf() { db(0x9C); }
652void pxor(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0xEF); }
653void rcl(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 2); }
654void rcl(const Operand& op, int imm) { opShift(op, imm, 2); }
655void rcpps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x53, 0x100, isXMM_XMMorMEM); }
656void rcpss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x53, 0xF3, isXMM_XMMorMEM); }
657void rcr(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 3); }
658void rcr(const Operand& op, int imm) { opShift(op, imm, 3); }
659void rdmsr() { db(0x0F); db(0x32); }
660void rdpmc() { db(0x0F); db(0x33); }
661void rdrand(const Reg& r) { if (r.isBit(8)) throw Error(ERR_BAD_SIZE_OF_REGISTER); opModR(Reg(6, Operand::REG, r.getBit()), r, 0x0F, 0xC7); }
662void rdseed(const Reg& r) { if (r.isBit(8)) throw Error(ERR_BAD_SIZE_OF_REGISTER); opModR(Reg(7, Operand::REG, r.getBit()), r, 0x0F, 0xC7); }
663void rdtsc() { db(0x0F); db(0x31); }
664void rdtscp() { db(0x0F); db(0x01); db(0xF9); }
665void rep() { db(0xF3); }
666void ret(int imm = 0) { if (imm) { db(0xC2); dw(imm); } else { db(0xC3); } }
667void rol(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 0); }
668void rol(const Operand& op, int imm) { opShift(op, imm, 0); }
669void ror(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 1); }
670void ror(const Operand& op, int imm) { opShift(op, imm, 1); }
671void rorx(const Reg32e& r, const Operand& op, uint8 imm) { opGpr(r, op, Reg32e(0, r.getBit()), T_0F3A | T_F2, 0xF0, false, imm); }
672void roundpd(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0x09, 0x66, isXMM_XMMorMEM, imm, 0x3A); }
673void roundps(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0x08, 0x66, isXMM_XMMorMEM, imm, 0x3A); }
674void roundsd(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x0B, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
675void roundss(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x0A, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
676void rsqrtps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x52, 0x100, isXMM_XMMorMEM); }
677void rsqrtss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x52, 0xF3, isXMM_XMMorMEM); }
678void sahf() { db(0x9E); }
679void sal(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 4); }
680void sal(const Operand& op, int imm) { opShift(op, imm, 4); }
681void sar(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 7); }
682void sar(const Operand& op, int imm) { opShift(op, imm, 7); }
683void sarx(const Reg32e& r1, const Operand& op, const Reg32e& r2) { opGpr(r1, op, r2, T_F3 | T_0F38, 0xf7, false); }
684void sbb(const Operand& op, uint32 imm) { opRM_I(op, imm, 0x18, 3); }
685void sbb(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x18); }
686void seta(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 7); }//-V524
687void setae(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 3); }//-V524
688void setb(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 2); }//-V524
689void setbe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 6); }//-V524
690void setc(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 2); }//-V524
691void sete(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 4); }//-V524
692void setg(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 15); }//-V524
693void setge(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 13); }//-V524
694void setl(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 12); }//-V524
695void setle(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 14); }//-V524
696void setna(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 6); }//-V524
697void setnae(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 2); }//-V524
698void setnb(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 3); }//-V524
699void setnbe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 7); }//-V524
700void setnc(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 3); }//-V524
701void setne(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 5); }//-V524
702void setng(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 14); }//-V524
703void setnge(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 12); }//-V524
704void setnl(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 13); }//-V524
705void setnle(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 15); }//-V524
706void setno(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 1); }//-V524
707void setnp(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 11); }//-V524
708void setns(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 9); }//-V524
709void setnz(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 5); }//-V524
710void seto(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 0); }//-V524
711void setp(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 10); }//-V524
712void setpe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 10); }//-V524
713void setpo(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 11); }//-V524
714void sets(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 8); }//-V524
715void setz(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 4); }//-V524
716void sfence() { db(0x0F); db(0xAE); db(0xF8); }
717void sha1msg1(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xC9, NONE, isXMM_XMMorMEM, NONE, 0x38); }
718void sha1msg2(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xCA, NONE, isXMM_XMMorMEM, NONE, 0x38); }
719void sha1nexte(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xC8, NONE, isXMM_XMMorMEM, NONE, 0x38); }
720void sha1rnds4(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0xCC, NONE, isXMM_XMMorMEM, imm, 0x3A); }
721void sha256msg1(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xCC, NONE, isXMM_XMMorMEM, NONE, 0x38); }
722void sha256msg2(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xCD, NONE, isXMM_XMMorMEM, NONE, 0x38); }
723void sha256rnds2(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xCB, NONE, isXMM_XMMorMEM, NONE, 0x38); }
724void shl(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 4); }
725void shl(const Operand& op, int imm) { opShift(op, imm, 4); }
726void shld(const Operand& op, const Reg& reg, const Reg8& _cl) { opShxd(op, reg, 0, 0xA4, &_cl); }
727void shld(const Operand& op, const Reg& reg, uint8 imm) { opShxd(op, reg, imm, 0xA4); }
728void shlx(const Reg32e& r1, const Operand& op, const Reg32e& r2) { opGpr(r1, op, r2, T_66 | T_0F38, 0xf7, false); }
729void shr(const Operand& op, const Reg8& _cl) { opShift(op, _cl, 5); }
730void shr(const Operand& op, int imm) { opShift(op, imm, 5); }
731void shrd(const Operand& op, const Reg& reg, const Reg8& _cl) { opShxd(op, reg, 0, 0xAC, &_cl); }
732void shrd(const Operand& op, const Reg& reg, uint8 imm) { opShxd(op, reg, imm, 0xAC); }
733void shrx(const Reg32e& r1, const Operand& op, const Reg32e& r2) { opGpr(r1, op, r2, T_F2 | T_0F38, 0xf7, false); }
734void shufpd(const Xmm& xmm, const Operand& op, uint8 imm8) { opGen(xmm, op, 0xC6, 0x66, isXMM_XMMorMEM, imm8); }
735void shufps(const Xmm& xmm, const Operand& op, uint8 imm8) { opGen(xmm, op, 0xC6, 0x100, isXMM_XMMorMEM, imm8); }
736void sqrtpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x51, 0x66, isXMM_XMMorMEM); }
737void sqrtps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x51, 0x100, isXMM_XMMorMEM); }
738void sqrtsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x51, 0xF2, isXMM_XMMorMEM); }
739void sqrtss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x51, 0xF3, isXMM_XMMorMEM); }
740void stac() { db(0x0F); db(0x01); db(0xCB); }
741void stc() { db(0xF9); }
742void std() { db(0xFD); }
743void sti() { db(0xFB); }
744void stmxcsr(const Address& addr) { opModM(addr, Reg32(3), 0x0F, 0xAE); }
745void sub(const Operand& op, uint32 imm) { opRM_I(op, imm, 0x28, 5); }
746void sub(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x28); }
747void subpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5C, 0x66, isXMM_XMMorMEM); }
748void subps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5C, 0x100, isXMM_XMMorMEM); }
749void subsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5C, 0xF2, isXMM_XMMorMEM); }
750void subss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x5C, 0xF3, isXMM_XMMorMEM); }
751void tzcnt(const Reg&reg, const Operand& op) { opSp1(reg, op, 0xF3, 0x0F, 0xBC); }
752void ucomisd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2E, 0x66, isXMM_XMMorMEM); }
753void ucomiss(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2E, 0x100, isXMM_XMMorMEM); }
754void ud2() { db(0x0F); db(0x0B); }
755void unpckhpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x15, 0x66, isXMM_XMMorMEM); }
756void unpckhps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x15, 0x100, isXMM_XMMorMEM); }
757void unpcklpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x14, 0x66, isXMM_XMMorMEM); }
758void unpcklps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x14, 0x100, isXMM_XMMorMEM); }
759void vaddpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x58); }
760void vaddps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x58); }
761void vaddsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F2 | T_EW1 | T_EVEX | T_ER_Z | T_N8, 0x58); }
762void vaddss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F3 | T_EW0 | T_EVEX | T_ER_Z | T_N4, 0x58); }
763void vaddsubpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_66 | T_0F | T_YMM, 0xD0); }
764void vaddsubps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_F2 | T_0F | T_YMM, 0xD0); }
765void vaesdec(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_66 | T_0F38 | T_YMM | T_EVEX, 0xDE); }
766void vaesdeclast(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_66 | T_0F38 | T_YMM | T_EVEX, 0xDF); }
767void vaesenc(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_66 | T_0F38 | T_YMM | T_EVEX, 0xDC); }
768void vaesenclast(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_66 | T_0F38 | T_YMM | T_EVEX, 0xDD); }
769void vaesimc(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38 | T_W0, 0xDB); }
770void vaeskeygenassist(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A, 0xDF, imm); }
771void vandnpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x55); }
772void vandnps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x55); }
773void vandpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x54); }
774void vandps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x54); }
775void vblendpd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM, 0x0D, imm); }
776void vblendps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM, 0x0C, imm); }
777void vblendvpd(const Xmm& x1, const Xmm& x2, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x2, op, T_0F3A | T_66 | T_YMM, 0x4B, x4.getIdx() << 4); }
778void vblendvps(const Xmm& x1, const Xmm& x2, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x2, op, T_0F3A | T_66 | T_YMM, 0x4A, x4.getIdx() << 4); }
779void vbroadcastf128(const Ymm& y, const Address& addr) { opAVX_X_XM_IMM(y, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x1A); }
780void vbroadcasti128(const Ymm& y, const Address& addr) { opAVX_X_XM_IMM(y, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x5A); }
781void vbroadcastsd(const Ymm& y, const Operand& op) { if (!op.isMEM() && !(y.isYMM() && op.isXMM()) && !(y.isZMM() && op.isXMM())) throw Error(ERR_BAD_COMBINATION); opAVX_X_XM_IMM(y, op, T_0F38 | T_66 | T_W0 | T_YMM | T_EVEX | T_EW1 | T_N8, 0x19); }
782void vbroadcastss(const Xmm& x, const Operand& op) { if (!(op.isXMM() || op.isMEM())) throw Error(ERR_BAD_COMBINATION); opAVX_X_XM_IMM(x, op, T_N4 | T_66 | T_0F38 | T_W0 | T_YMM | T_EVEX, 0x18); }
783void vcmpeq_ospd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 16); }
784void vcmpeq_osps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 16); }
785void vcmpeq_ossd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 16); }
786void vcmpeq_osss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 16); }
787void vcmpeq_uqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 8); }
788void vcmpeq_uqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 8); }
789void vcmpeq_uqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 8); }
790void vcmpeq_uqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 8); }
791void vcmpeq_uspd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 24); }
792void vcmpeq_usps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 24); }
793void vcmpeq_ussd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 24); }
794void vcmpeq_usss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 24); }
795void vcmpeqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 0); }
796void vcmpeqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 0); }
797void vcmpeqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 0); }
798void vcmpeqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 0); }
799void vcmpfalse_ospd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 27); }
800void vcmpfalse_osps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 27); }
801void vcmpfalse_ossd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 27); }
802void vcmpfalse_osss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 27); }
803void vcmpfalsepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 11); }
804void vcmpfalseps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 11); }
805void vcmpfalsesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 11); }
806void vcmpfalsess(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 11); }
807void vcmpge_oqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 29); }
808void vcmpge_oqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 29); }
809void vcmpge_oqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 29); }
810void vcmpge_oqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 29); }
811void vcmpgepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 13); }
812void vcmpgeps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 13); }
813void vcmpgesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 13); }
814void vcmpgess(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 13); }
815void vcmpgt_oqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 30); }
816void vcmpgt_oqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 30); }
817void vcmpgt_oqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 30); }
818void vcmpgt_oqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 30); }
819void vcmpgtpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 14); }
820void vcmpgtps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 14); }
821void vcmpgtsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 14); }
822void vcmpgtss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 14); }
823void vcmple_oqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 18); }
824void vcmple_oqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 18); }
825void vcmple_oqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 18); }
826void vcmple_oqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 18); }
827void vcmplepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 2); }
828void vcmpleps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 2); }
829void vcmplesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 2); }
830void vcmpless(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 2); }
831void vcmplt_oqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 17); }
832void vcmplt_oqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 17); }
833void vcmplt_oqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 17); }
834void vcmplt_oqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 17); }
835void vcmpltpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 1); }
836void vcmpltps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 1); }
837void vcmpltsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 1); }
838void vcmpltss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 1); }
839void vcmpneq_oqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 12); }
840void vcmpneq_oqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 12); }
841void vcmpneq_oqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 12); }
842void vcmpneq_oqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 12); }
843void vcmpneq_ospd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 28); }
844void vcmpneq_osps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 28); }
845void vcmpneq_ossd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 28); }
846void vcmpneq_osss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 28); }
847void vcmpneq_uspd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 20); }
848void vcmpneq_usps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 20); }
849void vcmpneq_ussd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 20); }
850void vcmpneq_usss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 20); }
851void vcmpneqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 4); }
852void vcmpneqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 4); }
853void vcmpneqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 4); }
854void vcmpneqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 4); }
855void vcmpnge_uqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 25); }
856void vcmpnge_uqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 25); }
857void vcmpnge_uqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 25); }
858void vcmpnge_uqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 25); }
859void vcmpngepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 9); }
860void vcmpngeps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 9); }
861void vcmpngesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 9); }
862void vcmpngess(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 9); }
863void vcmpngt_uqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 26); }
864void vcmpngt_uqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 26); }
865void vcmpngt_uqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 26); }
866void vcmpngt_uqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 26); }
867void vcmpngtpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 10); }
868void vcmpngtps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 10); }
869void vcmpngtsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 10); }
870void vcmpngtss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 10); }
871void vcmpnle_uqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 22); }
872void vcmpnle_uqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 22); }
873void vcmpnle_uqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 22); }
874void vcmpnle_uqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 22); }
875void vcmpnlepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 6); }
876void vcmpnleps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 6); }
877void vcmpnlesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 6); }
878void vcmpnless(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 6); }
879void vcmpnlt_uqpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 21); }
880void vcmpnlt_uqps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 21); }
881void vcmpnlt_uqsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 21); }
882void vcmpnlt_uqss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 21); }
883void vcmpnltpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 5); }
884void vcmpnltps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 5); }
885void vcmpnltsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 5); }
886void vcmpnltss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 5); }
887void vcmpord_spd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 23); }
888void vcmpord_sps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 23); }
889void vcmpord_ssd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 23); }
890void vcmpord_sss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 23); }
891void vcmpordpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 7); }
892void vcmpordps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 7); }
893void vcmpordsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 7); }
894void vcmpordss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 7); }
895void vcmppd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0xC2, imm); }
896void vcmpps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_0F | T_YMM, 0xC2, imm); }
897void vcmpsd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_F2 | T_0F, 0xC2, imm); }
898void vcmpss(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F, 0xC2, imm); }
899void vcmptrue_uspd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 31); }
900void vcmptrue_usps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 31); }
901void vcmptrue_ussd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 31); }
902void vcmptrue_usss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 31); }
903void vcmptruepd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 15); }
904void vcmptrueps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 15); }
905void vcmptruesd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 15); }
906void vcmptruess(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 15); }
907void vcmpunord_spd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 19); }
908void vcmpunord_sps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 19); }
909void vcmpunord_ssd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 19); }
910void vcmpunord_sss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 19); }
911void vcmpunordpd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmppd(x1, x2, op, 3); }
912void vcmpunordps(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpps(x1, x2, op, 3); }
913void vcmpunordsd(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpsd(x1, x2, op, 3); }
914void vcmpunordss(const Xmm& x1, const Xmm& x2, const Operand& op) { vcmpss(x1, x2, op, 3); }
915void vcomisd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T_66 | T_0F | T_EW1 | T_EVEX | T_SAE_X, 0x2F); }
916void vcomiss(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N4 | T_0F | T_EW0 | T_EVEX | T_SAE_X, 0x2F); }
917void vcvtdq2pd(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_0F | T_F3 | T_YMM | T_EVEX | T_EW0 | T_B32 | T_N8 | T_N_VL, 0xE6); }
918void vcvtdq2ps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x5B); }
919void vcvtpd2dq(const Xmm& x, const Operand& op) { opCvt2(x, op, T_0F | T_F2 | T_YMM | T_EVEX | T_EW1 | T_B64 | T_ER_Z, 0xE6); }
920void vcvtpd2ps(const Xmm& x, const Operand& op) { opCvt2(x, op, T_0F | T_66 | T_YMM | T_EVEX | T_EW1 | T_B64 | T_ER_Z, 0x5A); }
921void vcvtph2ps(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_0F38 | T_66 | T_W0 | T_EVEX | T_EW0 | T_N8 | T_N_VL | T_SAE_Y, 0x13); }
922void vcvtps2dq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x5B); }
923void vcvtps2pd(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_0F | T_YMM | T_EVEX | T_EW0 | T_B32 | T_N8 | T_N_VL | T_SAE_Y, 0x5A); }
924void vcvtps2ph(const Operand& op, const Xmm& x, uint8 imm) { checkCvt1(x, op); opVex(x, 0, op, T_0F3A | T_66 | T_W0 | T_EVEX | T_EW0 | T_N8 | T_N_VL | T_SAE_Y, 0x1D, imm); }
925void vcvtsd2si(const Reg32& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F2 | T_W0 | T_EVEX | T_EW0 | T_N4 | T_ER_X, 0x2D); }
926void vcvtsd2ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_F2 | T_0F | T_EW1 | T_EVEX | T_ER_X, 0x5A); }
927void vcvtsi2sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opCvt3(x1, x2, op, T_0F | T_F2 | T_EVEX, T_W1 | T_EW1 | T_ER_X | T_N8, T_W0 | T_EW0 | T_N4, 0x2A); }
928void vcvtsi2ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opCvt3(x1, x2, op, T_0F | T_F3 | T_EVEX | T_ER_X, T_W1 | T_EW1 | T_N8, T_W0 | T_EW0 | T_N4, 0x2A); }
929void vcvtss2sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_F3 | T_0F | T_EW0 | T_EVEX | T_SAE_X, 0x5A); }
930void vcvtss2si(const Reg32& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F3 | T_W0 | T_EVEX | T_EW0 | T_ER_X | T_N8, 0x2D); }
931void vcvttpd2dq(const Xmm& x, const Operand& op) { opCvt2(x, op, T_66 | T_0F | T_YMM | T_EVEX |T_EW1 | T_B64 | T_ER_Z, 0xE6); }
932void vcvttps2dq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_F3 | T_0F | T_EW0 | T_YMM | T_EVEX | T_SAE_Z | T_B32, 0x5B); }
933void vcvttsd2si(const Reg32& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F2 | T_W0 | T_EVEX | T_EW0 | T_N4 | T_SAE_X, 0x2C); }
934void vcvttss2si(const Reg32& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F3 | T_W0 | T_EVEX | T_EW0 | T_SAE_X | T_N8, 0x2C); }
935void vdivpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x5E); }
936void vdivps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x5E); }
937void vdivsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F2 | T_EW1 | T_EVEX | T_ER_Z | T_N8, 0x5E); }
938void vdivss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F3 | T_EW0 | T_EVEX | T_ER_Z | T_N4, 0x5E); }
939void vdppd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0, 0x41, imm); }
940void vdpps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM, 0x40, imm); }
941void vextractf128(const Operand& op, const Ymm& y, uint8 imm) { if (!(op.isXMEM() && y.isYMM())) throw Error(ERR_BAD_COMBINATION); opVex(y, 0, op, T_0F3A | T_66 | T_W0 | T_YMM, 0x19, imm); }
942void vextracti128(const Operand& op, const Ymm& y, uint8 imm) { if (!(op.isXMEM() && y.isYMM())) throw Error(ERR_BAD_COMBINATION); opVex(y, 0, op, T_0F3A | T_66 | T_W0 | T_YMM, 0x39, imm); }
943void vextractps(const Operand& op, const Xmm& x, uint8 imm) { if (!((op.isREG(32) || op.isMEM()) && x.isXMM())) throw Error(ERR_BAD_COMBINATION); opVex(x, 0, op, T_0F3A | T_66 | T_W0 | T_EVEX | T_N4, 0x17, imm); }
944void vfmadd132pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x98); }
945void vfmadd132ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x98); }
946void vfmadd132sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0x99); }
947void vfmadd132ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0x99); }
948void vfmadd213pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xA8); }
949void vfmadd213ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xA8); }
950void vfmadd213sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0xA9); }
951void vfmadd213ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0xA9); }
952void vfmadd231pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xB8); }
953void vfmadd231ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xB8); }
954void vfmadd231sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0xB9); }
955void vfmadd231ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0xB9); }
956void vfmaddsub132pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x96); }
957void vfmaddsub132ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x96); }
958void vfmaddsub213pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xA6); }
959void vfmaddsub213ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xA6); }
960void vfmaddsub231pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xB6); }
961void vfmaddsub231ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xB6); }
962void vfmsub132pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x9A); }
963void vfmsub132ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x9A); }
964void vfmsub132sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0x9B); }
965void vfmsub132ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0x9B); }
966void vfmsub213pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xAA); }
967void vfmsub213ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xAA); }
968void vfmsub213sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0xAB); }
969void vfmsub213ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0xAB); }
970void vfmsub231pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xBA); }
971void vfmsub231ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xBA); }
972void vfmsub231sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0xBB); }
973void vfmsub231ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0xBB); }
974void vfmsubadd132pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x97); }
975void vfmsubadd132ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x97); }
976void vfmsubadd213pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xA7); }
977void vfmsubadd213ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xA7); }
978void vfmsubadd231pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xB7); }
979void vfmsubadd231ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xB7); }
980void vfnmadd132pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x9C); }
981void vfnmadd132ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x9C); }
982void vfnmadd132sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0x9D); }
983void vfnmadd132ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0x9D); }
984void vfnmadd213pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xAC); }
985void vfnmadd213ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xAC); }
986void vfnmadd213sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0xAD); }
987void vfnmadd213ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0xAD); }
988void vfnmadd231pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xBC); }
989void vfnmadd231ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xBC); }
990void vfnmadd231sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0xBD); }
991void vfnmadd231ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0xBD); }
992void vfnmsub132pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x9E); }
993void vfnmsub132ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x9E); }
994void vfnmsub132sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0x9F); }
995void vfnmsub132ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0x9F); }
996void vfnmsub213pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xAE); }
997void vfnmsub213ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xAE); }
998void vfnmsub213sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0xAF); }
999void vfnmsub213ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0xAF); }
1000void vfnmsub231pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0xBE); }
1001void vfnmsub231ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0xBE); }
1002void vfnmsub231sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_W1 | T_EW1 | T_EVEX | T_ER_X, 0xBF); }
1003void vfnmsub231ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_W0 | T_EW0 | T_EVEX | T_ER_X, 0xBF); }
1004void vgatherdpd(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, T_0F38 | T_66 | T_W1, 0x92, 0); }
1005void vgatherdps(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, T_0F38 | T_66 | T_W0, 0x92, 1); }
1006void vgatherqpd(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, T_0F38 | T_66 | T_W1, 0x93, 1); }
1007void vgatherqps(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, T_0F38 | T_66 | T_W0, 0x93, 2); }
1008void vgf2p8affineinvqb(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W1 | T_EW1 | T_YMM | T_EVEX | T_SAE_Z | T_B64, 0xCF, imm); }
1009void vgf2p8affineqb(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W1 | T_EW1 | T_YMM | T_EVEX | T_SAE_Z | T_B64, 0xCE, imm); }
1010void vgf2p8mulb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_SAE_Z, 0xCF); }
1011void vhaddpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_66 | T_0F | T_YMM, 0x7C); }
1012void vhaddps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_F2 | T_0F | T_YMM, 0x7C); }
1013void vhsubpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_66 | T_0F | T_YMM, 0x7D); }
1014void vhsubps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_F2 | T_0F | T_YMM, 0x7D); }
1015void vinsertf128(const Ymm& y1, const Ymm& y2, const Operand& op, uint8 imm) { if (!(y1.isYMM() && y2.isYMM() && op.isXMEM())) throw Error(ERR_BAD_COMBINATION); opVex(y1, &y2, op, T_0F3A | T_66 | T_W0 | T_YMM, 0x18, imm); }
1016void vinserti128(const Ymm& y1, const Ymm& y2, const Operand& op, uint8 imm) { if (!(y1.isYMM() && y2.isYMM() && op.isXMEM())) throw Error(ERR_BAD_COMBINATION); opVex(y1, &y2, op, T_0F3A | T_66 | T_W0 | T_YMM, 0x38, imm); }
1017void vinsertps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_EW0 | T_EVEX, 0x21, imm); }
1018void vlddqu(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, cvtIdx0(x), addr, T_0F | T_F2 | T_W0 | T_YMM, 0xF0); }
1019void vldmxcsr(const Address& addr) { opAVX_X_X_XM(xm2, xm0, addr, T_0F, 0xAE); }
1020void vmaskmovdqu(const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x1, xm0, x2, T_0F | T_66, 0xF7); }
1021void vmaskmovpd(const Address& addr, const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x2, x1, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x2F); }
1022void vmaskmovpd(const Xmm& x1, const Xmm& x2, const Address& addr) { opAVX_X_X_XM(x1, x2, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x2D); }
1023void vmaskmovps(const Address& addr, const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x2, x1, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x2E); }
1024void vmaskmovps(const Xmm& x1, const Xmm& x2, const Address& addr) { opAVX_X_X_XM(x1, x2, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x2C); }
1025void vmaxpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x5F); }
1026void vmaxps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x5F); }
1027void vmaxsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F2 | T_EW1 | T_EVEX | T_ER_Z | T_N8, 0x5F); }
1028void vmaxss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F3 | T_EW0 | T_EVEX | T_ER_Z | T_N4, 0x5F); }
1029void vminpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x5D); }
1030void vminps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x5D); }
1031void vminsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F2 | T_EW1 | T_EVEX | T_ER_Z | T_N8, 0x5D); }
1032void vminss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F3 | T_EW0 | T_EVEX | T_ER_Z | T_N4, 0x5D); }
1033void vmovapd(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_M_K, 0x29); }
1034void vmovapd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX, 0x28); }
1035void vmovaps(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, T_0F | T_EW0 | T_YMM | T_EVEX | T_M_K, 0x29); }
1036void vmovaps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_0F | T_EW0 | T_YMM | T_EVEX, 0x28); }
1037void vmovd(const Operand& op, const Xmm& x) { if (!op.isREG(32) && !op.isMEM()) throw Error(ERR_BAD_COMBINATION); opAVX_X_X_XM(x, xm0, op, T_0F | T_66 | T_W0 | T_EVEX | T_N4, 0x7E); }
1038void vmovd(const Xmm& x, const Operand& op) { if (!op.isREG(32) && !op.isMEM()) throw Error(ERR_BAD_COMBINATION); opAVX_X_X_XM(x, xm0, op, T_0F | T_66 | T_W0 | T_EVEX | T_N4, 0x6E); }
1039void vmovddup(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_DUP | T_F2 | T_0F | T_EW1 | T_YMM | T_EVEX | T_ER_X | T_ER_Y | T_ER_Z, 0x12); }
1040void vmovdqa(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, T_66 | T_0F | T_YMM, 0x7F); }
1041void vmovdqa(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F | T_YMM, 0x6F); }
1042void vmovdqu(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, T_F3 | T_0F | T_YMM, 0x7F); }
1043void vmovdqu(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_F3 | T_0F | T_YMM, 0x6F); }
1044void vmovhlps(const Xmm& x1, const Xmm& x2, const Operand& op = Operand()) { if (!op.isNone() && !op.isXMM()) throw Error(ERR_BAD_COMBINATION); opAVX_X_X_XM(x1, x2, op, T_0F | T_EVEX | T_EW0, 0x12); }
1045void vmovhpd(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, T_0F | T_66 | T_EVEX | T_EW1 | T_N8, 0x17); }
1046void vmovhpd(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !op2.isMEM()) throw Error(ERR_BAD_COMBINATION); opAVX_X_X_XM(x, op1, op2, T_0F | T_66 | T_EVEX | T_EW1 | T_N8, 0x16); }
1047void vmovhps(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, T_0F | T_EVEX | T_EW0 | T_N8, 0x17); }
1048void vmovhps(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !op2.isMEM()) throw Error(ERR_BAD_COMBINATION); opAVX_X_X_XM(x, op1, op2, T_0F | T_EVEX | T_EW0 | T_N8, 0x16); }
1049void vmovlhps(const Xmm& x1, const Xmm& x2, const Operand& op = Operand()) { if (!op.isNone() && !op.isXMM()) throw Error(ERR_BAD_COMBINATION); opAVX_X_X_XM(x1, x2, op, T_0F | T_EVEX | T_EW0, 0x16); }
1050void vmovlpd(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, T_0F | T_66 | T_EVEX | T_EW1 | T_N8, 0x13); }
1051void vmovlpd(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !op2.isMEM()) throw Error(ERR_BAD_COMBINATION); opAVX_X_X_XM(x, op1, op2, T_0F | T_66 | T_EVEX | T_EW1 | T_N8, 0x12); }
1052void vmovlps(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, T_0F | T_EVEX | T_EW0 | T_N8, 0x13); }
1053void vmovlps(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !op2.isMEM()) throw Error(ERR_BAD_COMBINATION); opAVX_X_X_XM(x, op1, op2, T_0F | T_EVEX | T_EW0 | T_N8, 0x12); }
1054void vmovmskpd(const Reg& r, const Xmm& x) { if (!r.isBit(i32e)) throw Error(ERR_BAD_COMBINATION); opAVX_X_X_XM(x.isXMM() ? Xmm(r.getIdx()) : Ymm(r.getIdx()), cvtIdx0(x), x, T_0F | T_66 | T_W0 | T_YMM, 0x50); }
1055void vmovmskps(const Reg& r, const Xmm& x) { if (!r.isBit(i32e)) throw Error(ERR_BAD_COMBINATION); opAVX_X_X_XM(x.isXMM() ? Xmm(r.getIdx()) : Ymm(r.getIdx()), cvtIdx0(x), x, T_0F | T_W0 | T_YMM, 0x50); }
1056void vmovntdq(const Address& addr, const Xmm& x) { opVex(x, 0, addr, T_0F | T_66 | T_YMM | T_EVEX | T_EW0, 0xE7); }
1057void vmovntdqa(const Xmm& x, const Address& addr) { opVex(x, 0, addr, T_0F38 | T_66 | T_YMM | T_EVEX | T_EW0, 0x2A); }
1058void vmovntpd(const Address& addr, const Xmm& x) { opVex(x, 0, addr, T_0F | T_66 | T_YMM | T_EVEX | T_EW1, 0x2B); }
1059void vmovntps(const Address& addr, const Xmm& x) { opVex(x, 0, addr, T_0F | T_YMM | T_EVEX | T_EW0, 0x2B); }
1060void vmovq(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, T_0F | T_66 | T_EVEX | T_EW1 | T_N8, x.getIdx() < 16 ? 0xD6 : 0x7E); }
1061void vmovq(const Xmm& x, const Address& addr) { int type, code; if (x.getIdx() < 16) { type = T_0F | T_F3; code = 0x7E; } else { type = T_0F | T_66 | T_EVEX | T_EW1 | T_N8; code = 0x6E; } opAVX_X_X_XM(x, xm0, addr, type, code); }
1062void vmovq(const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x1, xm0, x2, T_0F | T_F3 | T_EVEX | T_EW1 | T_N8, 0x7E); }
1063void vmovsd(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, T_N8 | T_F2 | T_0F | T_EW1 | T_EVEX | T_M_K, 0x11); }
1064void vmovsd(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, xm0, addr, T_N8 | T_F2 | T_0F | T_EW1 | T_EVEX, 0x10); }
1065void vmovsd(const Xmm& x1, const Xmm& x2, const Operand& op = Operand()) { if (!op.isNone() && !op.isXMM()) throw Error(ERR_BAD_COMBINATION); opAVX_X_X_XM(x1, x2, op, T_N8 | T_F2 | T_0F | T_EW1 | T_EVEX, 0x10); }
1066void vmovshdup(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_F3 | T_0F | T_EW0 | T_YMM | T_EVEX, 0x16); }
1067void vmovsldup(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_F3 | T_0F | T_EW0 | T_YMM | T_EVEX, 0x12); }
1068void vmovss(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, T_N4 | T_F3 | T_0F | T_EW0 | T_EVEX | T_M_K, 0x11); }
1069void vmovss(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, xm0, addr, T_N4 | T_F3 | T_0F | T_EW0 | T_EVEX, 0x10); }
1070void vmovss(const Xmm& x1, const Xmm& x2, const Operand& op = Operand()) { if (!op.isNone() && !op.isXMM()) throw Error(ERR_BAD_COMBINATION); opAVX_X_X_XM(x1, x2, op, T_N4 | T_F3 | T_0F | T_EW0 | T_EVEX, 0x10); }
1071void vmovupd(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_M_K, 0x11); }
1072void vmovupd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX, 0x10); }
1073void vmovups(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, T_0F | T_EW0 | T_YMM | T_EVEX | T_M_K, 0x11); }
1074void vmovups(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_0F | T_EW0 | T_YMM | T_EVEX, 0x10); }
1075void vmpsadbw(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM, 0x42, imm); }
1076void vmulpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x59); }
1077void vmulps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x59); }
1078void vmulsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F2 | T_EW1 | T_EVEX | T_ER_Z | T_N8, 0x59); }
1079void vmulss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F3 | T_EW0 | T_EVEX | T_ER_Z | T_N4, 0x59); }
1080void vorpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x56); }
1081void vorps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x56); }
1082void vpabsb(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x1C); }
1083void vpabsd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x1E); }
1084void vpabsw(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x1D); }
1085void vpackssdw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0x6B); }
1086void vpacksswb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0x63); }
1087void vpackusdw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x2B); }
1088void vpackuswb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0x67); }
1089void vpaddb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xFC); }
1090void vpaddd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0xFE); }
1091void vpaddq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0xD4); }
1092void vpaddsb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xEC); }
1093void vpaddsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xED); }
1094void vpaddusb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xDC); }
1095void vpaddusw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xDD); }
1096void vpaddw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xFD); }
1097void vpalignr(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_YMM | T_EVEX, 0x0F, imm); }
1098void vpand(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0xDB); }
1099void vpandn(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0xDF); }
1100void vpavgb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xE0); }
1101void vpavgw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xE3); }
1102void vpblendd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM, 0x02, imm); }
1103void vpblendvb(const Xmm& x1, const Xmm& x2, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x2, op, T_0F3A | T_66 | T_YMM, 0x4C, x4.getIdx() << 4); }
1104void vpblendw(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM, 0x0E, imm); }
1105void vpbroadcastb(const Xmm& x, const Operand& op) { if (!(op.isXMM() || op.isMEM())) throw Error(ERR_BAD_COMBINATION); opAVX_X_XM_IMM(x, op, T_N1 | T_66 | T_0F38 | T_W0 | T_YMM | T_EVEX, 0x78); }
1106void vpbroadcastd(const Xmm& x, const Operand& op) { if (!(op.isXMM() || op.isMEM())) throw Error(ERR_BAD_COMBINATION); opAVX_X_XM_IMM(x, op, T_N4 | T_66 | T_0F38 | T_W0 | T_YMM | T_EVEX, 0x58); }
1107void vpbroadcastq(const Xmm& x, const Operand& op) { if (!(op.isXMM() || op.isMEM())) throw Error(ERR_BAD_COMBINATION); opAVX_X_XM_IMM(x, op, T_N8 | T_66 | T_0F38 | T_W0 | T_EW1 | T_YMM | T_EVEX, 0x59); }
1108void vpbroadcastw(const Xmm& x, const Operand& op) { if (!(op.isXMM() || op.isMEM())) throw Error(ERR_BAD_COMBINATION); opAVX_X_XM_IMM(x, op, T_N2 | T_66 | T_0F38 | T_W0 | T_YMM | T_EVEX, 0x79); }
1109void vpclmulqdq(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0 | T_YMM | T_EVEX, 0x44, imm); }
1110void vpcmpeqb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0x74); }
1111void vpcmpeqd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0x76); }
1112void vpcmpeqq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x29); }
1113void vpcmpeqw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0x75); }
1114void vpcmpestri(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A, 0x61, imm); }
1115void vpcmpestrm(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A, 0x60, imm); }
1116void vpcmpgtb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0x64); }
1117void vpcmpgtd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0x66); }
1118void vpcmpgtq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x37); }
1119void vpcmpgtw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0x65); }
1120void vpcmpistri(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A, 0x63, imm); }
1121void vpcmpistrm(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A, 0x62, imm); }
1122void vperm2f128(const Ymm& y1, const Ymm& y2, const Operand& op, uint8 imm) { if (!(y1.isYMM() && y2.isYMM() && op.isYMEM())) throw Error(ERR_BAD_COMBINATION); opVex(y1, &y2, op, T_0F3A | T_66 | T_W0 | T_YMM, 0x06, imm); }
1123void vperm2i128(const Ymm& y1, const Ymm& y2, const Operand& op, uint8 imm) { if (!(y1.isYMM() && y2.isYMM() && op.isYMEM())) throw Error(ERR_BAD_COMBINATION); opVex(y1, &y2, op, T_0F3A | T_66 | T_W0 | T_YMM, 0x46, imm); }
1124void vpermd(const Ymm& y1, const Ymm& y2, const Operand& op) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x36); }
1125void vpermilpd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x0D); }
1126void vpermilpd(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_EVEX | T_B64, 0x05, imm); }
1127void vpermilps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x0C); }
1128void vpermilps(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_EVEX | T_B32, 0x04, imm); }
1129void vpermpd(const Ymm& y, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(y, op, T_66 | T_0F3A | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x01, imm); }
1130void vpermpd(const Ymm& y1, const Ymm& y2, const Operand& op) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x16); }
1131void vpermps(const Ymm& y1, const Ymm& y2, const Operand& op) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x16); }
1132void vpermq(const Ymm& y, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(y, op, T_66 | T_0F3A | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x00, imm); }
1133void vpermq(const Ymm& y1, const Ymm& y2, const Operand& op) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F38 | T_W0 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x36); }
1134void vpextrb(const Operand& op, const Xmm& x, uint8 imm) { if (!((op.isREG(8|16|i32e) || op.isMEM()) && x.isXMM())) throw Error(ERR_BAD_COMBINATION); opVex(x, 0, op, T_0F3A | T_66 | T_EVEX | T_N1, 0x14, imm); }
1135void vpextrd(const Operand& op, const Xmm& x, uint8 imm) { if (!((op.isREG(32) || op.isMEM()) && x.isXMM())) throw Error(ERR_BAD_COMBINATION); opVex(x, 0, op, T_0F3A | T_66 | T_W0 | T_EVEX | T_EW0 | T_N4, 0x16, imm); }
1136void vpextrq(const Operand& op, const Xmm& x, uint8 imm) { if (!((op.isREG(64) || op.isMEM()) && x.isXMM())) throw Error(ERR_BAD_COMBINATION); opVex(x, 0, op, T_0F3A | T_66 | T_W1 | T_EVEX | T_EW1 | T_N8, 0x16, imm); }
1137void vpextrw(const Operand& op, const Xmm& x, uint8 imm) { if (!((op.isREG(16|i32e) || op.isMEM()) && x.isXMM())) throw Error(ERR_BAD_COMBINATION); if (op.isREG() && x.getIdx() < 16) { opAVX_X_X_XM(Xmm(op.getIdx()), xm0, x, T_0F | T_66, 0xC5, imm); } else { opVex(x, 0, op, T_0F3A | T_66 | T_EVEX | T_N2, 0x15, imm); } }
1138void vpgatherdd(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, T_0F38 | T_66 | T_W0, 0x90, 1); }
1139void vpgatherdq(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, T_0F38 | T_66 | T_W1, 0x90, 0); }
1140void vpgatherqd(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, T_0F38 | T_66 | T_W0, 0x91, 2); }
1141void vpgatherqq(const Xmm& x1, const Address& addr, const Xmm& x2) { opGather(x1, addr, x2, T_0F38 | T_66 | T_W1, 0x91, 1); }
1142void vphaddd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x02); }
1143void vphaddsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x03); }
1144void vphaddw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x01); }
1145void vphminposuw(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38, 0x41); }
1146void vphsubd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x06); }
1147void vphsubsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x07); }
1148void vphsubw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x05); }
1149void vpinsrb(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { if (!(x1.isXMM() && x2.isXMM() && (op.isREG(32) || op.isMEM()))) throw Error(ERR_BAD_COMBINATION); opVex(x1, &x2, op, T_0F3A | T_66 | T_EVEX | T_N1, 0x20, imm); }
1150void vpinsrd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { if (!(x1.isXMM() && x2.isXMM() && (op.isREG(32) || op.isMEM()))) throw Error(ERR_BAD_COMBINATION); opVex(x1, &x2, op, T_0F3A | T_66 | T_W0 | T_EVEX | T_EW0 | T_N4, 0x22, imm); }
1151void vpinsrq(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { if (!(x1.isXMM() && x2.isXMM() && (op.isREG(64) || op.isMEM()))) throw Error(ERR_BAD_COMBINATION); opVex(x1, &x2, op, T_0F3A | T_66 | T_W1 | T_EVEX | T_EW1 | T_N8, 0x22, imm); }
1152void vpinsrw(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { if (!(x1.isXMM() && x2.isXMM() && (op.isREG(32) || op.isMEM()))) throw Error(ERR_BAD_COMBINATION); opVex(x1, &x2, op, T_0F | T_66 | T_EVEX | T_N2, 0xC4, imm); }
1153void vpmaddubsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x04); }
1154void vpmaddwd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xF5); }
1155void vpmaskmovd(const Address& addr, const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x2, x1, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x8E); }
1156void vpmaskmovd(const Xmm& x1, const Xmm& x2, const Address& addr) { opAVX_X_X_XM(x1, x2, addr, T_0F38 | T_66 | T_W0 | T_YMM, 0x8C); }
1157void vpmaskmovq(const Address& addr, const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x2, x1, addr, T_0F38 | T_66 | T_W1 | T_YMM, 0x8E); }
1158void vpmaskmovq(const Xmm& x1, const Xmm& x2, const Address& addr) { opAVX_X_X_XM(x1, x2, addr, T_0F38 | T_66 | T_W1 | T_YMM, 0x8C); }
1159void vpmaxsb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x3C); }
1160void vpmaxsd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x3D); }
1161void vpmaxsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xEE); }
1162void vpmaxub(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xDE); }
1163void vpmaxud(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x3F); }
1164void vpmaxuw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x3E); }
1165void vpminsb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x38); }
1166void vpminsd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x39); }
1167void vpminsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xEA); }
1168void vpminub(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xDA); }
1169void vpminud(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x3B); }
1170void vpminuw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x3A); }
1171void vpmovmskb(const Reg32e& r, const Xmm& x) { if (!x.is(Operand::XMM | Operand::YMM)) throw Error(ERR_BAD_COMBINATION); opVex(x.isYMM() ? Ymm(r.getIdx()) : Xmm(r.getIdx()), 0, x, T_0F | T_66 | T_YMM, 0xD7); }
1172void vpmovsxbd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N4 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x21); }
1173void vpmovsxbq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N2 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x22); }
1174void vpmovsxbw(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x20); }
1175void vpmovsxdq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T_N_VL | T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX, 0x25); }
1176void vpmovsxwd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x23); }
1177void vpmovsxwq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N4 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x24); }
1178void vpmovzxbd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N4 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x31); }
1179void vpmovzxbq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N2 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x32); }
1180void vpmovzxbw(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x30); }
1181void vpmovzxdq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T_N_VL | T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX, 0x35); }
1182void vpmovzxwd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x33); }
1183void vpmovzxwq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N4 | T_N_VL | T_66 | T_0F38 | T_YMM | T_EVEX, 0x34); }
1184void vpmuldq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x28); }
1185void vpmulhrsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x0B); }
1186void vpmulhuw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xE4); }
1187void vpmulhw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xE5); }
1188void vpmulld(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x40); }
1189void vpmullw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xD5); }
1190void vpmuludq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0xF4); }
1191void vpor(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0xEB); }
1192void vpsadbw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xF6); }
1193void vpshufb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM | T_EVEX, 0x00); }
1194void vpshufd(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0x70, imm); }
1195void vpshufhw(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, T_F3 | T_0F | T_YMM | T_EVEX, 0x70, imm); }
1196void vpshuflw(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, T_F2 | T_0F | T_YMM | T_EVEX, 0x70, imm); }
1197void vpsignb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x08); }
1198void vpsignd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x0A); }
1199void vpsignw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_YMM, 0x09); }
1200void vpslld(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_X_XM(Xmm(x.getKind(), 6), x, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0x72, imm); }
1201void vpslld(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_EW0 | T_YMM | T_EVEX, 0xF2); }
1202void vpslldq(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_X_XM(Xmm(x.getKind(), 7), x, op, T_66 | T_0F | T_YMM | T_EVEX, 0x73, imm); }
1203void vpsllq(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_X_XM(Xmm(x.getKind(), 6), x, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0x73, imm); }
1204void vpsllq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_EW1 | T_YMM | T_EVEX, 0xF3); }
1205void vpsllvd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x47); }
1206void vpsllvq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x47); }
1207void vpsllw(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_X_XM(Xmm(x.getKind(), 6), x, op, T_66 | T_0F | T_YMM | T_EVEX, 0x71, imm); }
1208void vpsllw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_YMM | T_EVEX, 0xF1); }
1209void vpsrad(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_X_XM(Xmm(x.getKind(), 4), x, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0x72, imm); }
1210void vpsrad(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_EW0 | T_YMM | T_EVEX, 0xE2); }
1211void vpsravd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x46); }
1212void vpsraw(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_X_XM(Xmm(x.getKind(), 4), x, op, T_66 | T_0F | T_YMM | T_EVEX, 0x71, imm); }
1213void vpsraw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_YMM | T_EVEX, 0xE1); }
1214void vpsrld(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_X_XM(Xmm(x.getKind(), 2), x, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0x72, imm); }
1215void vpsrld(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_EW0 | T_YMM | T_EVEX, 0xD2); }
1216void vpsrldq(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_X_XM(Xmm(x.getKind(), 3), x, op, T_66 | T_0F | T_YMM | T_EVEX, 0x73, imm); }
1217void vpsrlq(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_X_XM(Xmm(x.getKind(), 2), x, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0x73, imm); }
1218void vpsrlq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_EW1 | T_YMM | T_EVEX, 0xD3); }
1219void vpsrlvd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W0 | T_EW0 | T_YMM | T_EVEX | T_B32, 0x45); }
1220void vpsrlvq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_W1 | T_EW1 | T_YMM | T_EVEX | T_B64, 0x45); }
1221void vpsrlw(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_X_XM(Xmm(x.getKind(), 2), x, op, T_66 | T_0F | T_YMM | T_EVEX, 0x71, imm); }
1222void vpsrlw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_YMM | T_EVEX, 0xD1); }
1223void vpsubb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xF8); }
1224void vpsubd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0xFA); }
1225void vpsubq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0xFB); }
1226void vpsubsb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xE8); }
1227void vpsubsw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xE9); }
1228void vpsubusb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xD8); }
1229void vpsubusw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xD9); }
1230void vpsubw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0xF9); }
1231void vptest(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38 | T_YMM, 0x17); }
1232void vpunpckhbw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0x68); }
1233void vpunpckhdq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0x6A); }
1234void vpunpckhqdq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0x6D); }
1235void vpunpckhwd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0x69); }
1236void vpunpcklbw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0x60); }
1237void vpunpckldq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0x62); }
1238void vpunpcklqdq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0x6C); }
1239void vpunpcklwd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM | T_EVEX, 0x61); }
1240void vpxor(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_YMM, 0xEF); }
1241void vrcpps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_0F | T_YMM, 0x53); }
1242void vrcpss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F, 0x53); }
1243void vroundpd(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A | T_YMM, 0x09, imm); }
1244void vroundps(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F3A | T_YMM, 0x08, imm); }
1245void vroundsd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0, 0x0B, imm); }
1246void vroundss(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_W0, 0x0A, imm); }
1247void vrsqrtps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_0F | T_YMM, 0x52); }
1248void vrsqrtss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_F3 | T_0F, 0x52); }
1249void vshufpd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0xC6, imm); }
1250void vshufps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0xC6, imm); }
1251void vsqrtpd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x51); }
1252void vsqrtps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x51); }
1253void vsqrtsd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_F2 | T_0F | T_EW1 | T_EVEX | T_ER_X, 0x51); }
1254void vsqrtss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_F3 | T_0F | T_EW0 | T_EVEX | T_ER_X, 0x51); }
1255void vstmxcsr(const Address& addr) { opAVX_X_X_XM(xm3, xm0, addr, T_0F, 0xAE); }
1256void vsubpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x5C); }
1257void vsubps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x5C); }
1258void vsubsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F2 | T_EW1 | T_EVEX | T_ER_Z | T_N8, 0x5C); }
1259void vsubss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_F3 | T_EW0 | T_EVEX | T_ER_Z | T_N4, 0x5C); }
1260void vtestpd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38 | T_YMM, 0x0F); }
1261void vtestps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_66 | T_0F38 | T_YMM, 0x0E); }
1262void vucomisd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N8 | T_66 | T_0F | T_EW1 | T_EVEX | T_SAE_X, 0x2E); }
1263void vucomiss(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, T_N4 | T_0F | T_EW0 | T_EVEX | T_SAE_X, 0x2E); }
1264void vunpckhpd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0x15); }
1265void vunpckhps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0x15); }
1266void vunpcklpd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_EVEX | T_B64, 0x14); }
1267void vunpcklps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_0F | T_EW0 | T_YMM | T_EVEX | T_B32, 0x14); }
1268void vxorpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_66 | T_EW1 | T_YMM | T_EVEX | T_ER_Z | T_B64, 0x57); }
1269void vxorps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, T_0F | T_EW0 | T_YMM | T_EVEX | T_ER_Z | T_B32, 0x57); }
1270void vzeroall() { db(0xC5); db(0xFC); db(0x77); }
1271void vzeroupper() { db(0xC5); db(0xF8); db(0x77); }
1272void wait() { db(0x9B); }
1273void wbinvd() { db(0x0F); db(0x09); }
1274void wrmsr() { db(0x0F); db(0x30); }
1275void xadd(const Operand& op, const Reg& reg) { opModRM(reg, op, (op.isREG() && reg.isREG() && op.getBit() == reg.getBit()), op.isMEM(), 0x0F, 0xC0 | (reg.isBit(8) ? 0 : 1)); }
1276void xgetbv() { db(0x0F); db(0x01); db(0xD0); }
1277void xlatb() { db(0xD7); }
1278void xor_(const Operand& op, uint32 imm) { opRM_I(op, imm, 0x30, 6); }
1279void xor_(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x30); }
1280void xorpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x57, 0x66, isXMM_XMMorMEM); }
1281void xorps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x57, 0x100, isXMM_XMMorMEM); }
1282#ifdef XBYAK_ENABLE_OMITTED_OPERAND
1283void vblendpd(const Xmm& x, const Operand& op, uint8 imm) { vblendpd(x, x, op, imm); }
1284void vblendps(const Xmm& x, const Operand& op, uint8 imm) { vblendps(x, x, op, imm); }
1285void vblendvpd(const Xmm& x1, const Operand& op, const Xmm& x4) { vblendvpd(x1, x1, op, x4); }
1286void vblendvps(const Xmm& x1, const Operand& op, const Xmm& x4) { vblendvps(x1, x1, op, x4); }
1287void vcmpeq_ospd(const Xmm& x, const Operand& op) { vcmpeq_ospd(x, x, op); }
1288void vcmpeq_osps(const Xmm& x, const Operand& op) { vcmpeq_osps(x, x, op); }
1289void vcmpeq_ossd(const Xmm& x, const Operand& op) { vcmpeq_ossd(x, x, op); }
1290void vcmpeq_osss(const Xmm& x, const Operand& op) { vcmpeq_osss(x, x, op); }
1291void vcmpeq_uqpd(const Xmm& x, const Operand& op) { vcmpeq_uqpd(x, x, op); }
1292void vcmpeq_uqps(const Xmm& x, const Operand& op) { vcmpeq_uqps(x, x, op); }
1293void vcmpeq_uqsd(const Xmm& x, const Operand& op) { vcmpeq_uqsd(x, x, op); }
1294void vcmpeq_uqss(const Xmm& x, const Operand& op) { vcmpeq_uqss(x, x, op); }
1295void vcmpeq_uspd(const Xmm& x, const Operand& op) { vcmpeq_uspd(x, x, op); }
1296void vcmpeq_usps(const Xmm& x, const Operand& op) { vcmpeq_usps(x, x, op); }
1297void vcmpeq_ussd(const Xmm& x, const Operand& op) { vcmpeq_ussd(x, x, op); }
1298void vcmpeq_usss(const Xmm& x, const Operand& op) { vcmpeq_usss(x, x, op); }
1299void vcmpeqpd(const Xmm& x, const Operand& op) { vcmpeqpd(x, x, op); }
1300void vcmpeqps(const Xmm& x, const Operand& op) { vcmpeqps(x, x, op); }
1301void vcmpeqsd(const Xmm& x, const Operand& op) { vcmpeqsd(x, x, op); }
1302void vcmpeqss(const Xmm& x, const Operand& op) { vcmpeqss(x, x, op); }
1303void vcmpfalse_ospd(const Xmm& x, const Operand& op) { vcmpfalse_ospd(x, x, op); }
1304void vcmpfalse_osps(const Xmm& x, const Operand& op) { vcmpfalse_osps(x, x, op); }
1305void vcmpfalse_ossd(const Xmm& x, const Operand& op) { vcmpfalse_ossd(x, x, op); }
1306void vcmpfalse_osss(const Xmm& x, const Operand& op) { vcmpfalse_osss(x, x, op); }
1307void vcmpfalsepd(const Xmm& x, const Operand& op) { vcmpfalsepd(x, x, op); }
1308void vcmpfalseps(const Xmm& x, const Operand& op) { vcmpfalseps(x, x, op); }
1309void vcmpfalsesd(const Xmm& x, const Operand& op) { vcmpfalsesd(x, x, op); }
1310void vcmpfalsess(const Xmm& x, const Operand& op) { vcmpfalsess(x, x, op); }
1311void vcmpge_oqpd(const Xmm& x, const Operand& op) { vcmpge_oqpd(x, x, op); }
1312void vcmpge_oqps(const Xmm& x, const Operand& op) { vcmpge_oqps(x, x, op); }
1313void vcmpge_oqsd(const Xmm& x, const Operand& op) { vcmpge_oqsd(x, x, op); }
1314void vcmpge_oqss(const Xmm& x, const Operand& op) { vcmpge_oqss(x, x, op); }
1315void vcmpgepd(const Xmm& x, const Operand& op) { vcmpgepd(x, x, op); }
1316void vcmpgeps(const Xmm& x, const Operand& op) { vcmpgeps(x, x, op); }
1317void vcmpgesd(const Xmm& x, const Operand& op) { vcmpgesd(x, x, op); }
1318void vcmpgess(const Xmm& x, const Operand& op) { vcmpgess(x, x, op); }
1319void vcmpgt_oqpd(const Xmm& x, const Operand& op) { vcmpgt_oqpd(x, x, op); }
1320void vcmpgt_oqps(const Xmm& x, const Operand& op) { vcmpgt_oqps(x, x, op); }
1321void vcmpgt_oqsd(const Xmm& x, const Operand& op) { vcmpgt_oqsd(x, x, op); }
1322void vcmpgt_oqss(const Xmm& x, const Operand& op) { vcmpgt_oqss(x, x, op); }
1323void vcmpgtpd(const Xmm& x, const Operand& op) { vcmpgtpd(x, x, op); }
1324void vcmpgtps(const Xmm& x, const Operand& op) { vcmpgtps(x, x, op); }
1325void vcmpgtsd(const Xmm& x, const Operand& op) { vcmpgtsd(x, x, op); }
1326void vcmpgtss(const Xmm& x, const Operand& op) { vcmpgtss(x, x, op); }
1327void vcmple_oqpd(const Xmm& x, const Operand& op) { vcmple_oqpd(x, x, op); }
1328void vcmple_oqps(const Xmm& x, const Operand& op) { vcmple_oqps(x, x, op); }
1329void vcmple_oqsd(const Xmm& x, const Operand& op) { vcmple_oqsd(x, x, op); }
1330void vcmple_oqss(const Xmm& x, const Operand& op) { vcmple_oqss(x, x, op); }
1331void vcmplepd(const Xmm& x, const Operand& op) { vcmplepd(x, x, op); }
1332void vcmpleps(const Xmm& x, const Operand& op) { vcmpleps(x, x, op); }
1333void vcmplesd(const Xmm& x, const Operand& op) { vcmplesd(x, x, op); }
1334void vcmpless(const Xmm& x, const Operand& op) { vcmpless(x, x, op); }
1335void vcmplt_oqpd(const Xmm& x, const Operand& op) { vcmplt_oqpd(x, x, op); }
1336void vcmplt_oqps(const Xmm& x, const Operand& op) { vcmplt_oqps(x, x, op); }
1337void vcmplt_oqsd(const Xmm& x, const Operand& op) { vcmplt_oqsd(x, x, op); }
1338void vcmplt_oqss(const Xmm& x, const Operand& op) { vcmplt_oqss(x, x, op); }
1339void vcmpltpd(const Xmm& x, const Operand& op) { vcmpltpd(x, x, op); }
1340void vcmpltps(const Xmm& x, const Operand& op) { vcmpltps(x, x, op); }
1341void vcmpltsd(const Xmm& x, const Operand& op) { vcmpltsd(x, x, op); }
1342void vcmpltss(const Xmm& x, const Operand& op) { vcmpltss(x, x, op); }
1343void vcmpneq_oqpd(const Xmm& x, const Operand& op) { vcmpneq_oqpd(x, x, op); }
1344void vcmpneq_oqps(const Xmm& x, const Operand& op) { vcmpneq_oqps(x, x, op); }
1345void vcmpneq_oqsd(const Xmm& x, const Operand& op) { vcmpneq_oqsd(x, x, op); }
1346void vcmpneq_oqss(const Xmm& x, const Operand& op) { vcmpneq_oqss(x, x, op); }
1347void vcmpneq_ospd(const Xmm& x, const Operand& op) { vcmpneq_ospd(x, x, op); }
1348void vcmpneq_osps(const Xmm& x, const Operand& op) { vcmpneq_osps(x, x, op); }
1349void vcmpneq_ossd(const Xmm& x, const Operand& op) { vcmpneq_ossd(x, x, op); }
1350void vcmpneq_osss(const Xmm& x, const Operand& op) { vcmpneq_osss(x, x, op); }
1351void vcmpneq_uspd(const Xmm& x, const Operand& op) { vcmpneq_uspd(x, x, op); }
1352void vcmpneq_usps(const Xmm& x, const Operand& op) { vcmpneq_usps(x, x, op); }
1353void vcmpneq_ussd(const Xmm& x, const Operand& op) { vcmpneq_ussd(x, x, op); }
1354void vcmpneq_usss(const Xmm& x, const Operand& op) { vcmpneq_usss(x, x, op); }
1355void vcmpneqpd(const Xmm& x, const Operand& op) { vcmpneqpd(x, x, op); }
1356void vcmpneqps(const Xmm& x, const Operand& op) { vcmpneqps(x, x, op); }
1357void vcmpneqsd(const Xmm& x, const Operand& op) { vcmpneqsd(x, x, op); }
1358void vcmpneqss(const Xmm& x, const Operand& op) { vcmpneqss(x, x, op); }
1359void vcmpnge_uqpd(const Xmm& x, const Operand& op) { vcmpnge_uqpd(x, x, op); }
1360void vcmpnge_uqps(const Xmm& x, const Operand& op) { vcmpnge_uqps(x, x, op); }
1361void vcmpnge_uqsd(const Xmm& x, const Operand& op) { vcmpnge_uqsd(x, x, op); }
1362void vcmpnge_uqss(const Xmm& x, const Operand& op) { vcmpnge_uqss(x, x, op); }
1363void vcmpngepd(const Xmm& x, const Operand& op) { vcmpngepd(x, x, op); }
1364void vcmpngeps(const Xmm& x, const Operand& op) { vcmpngeps(x, x, op); }
1365void vcmpngesd(const Xmm& x, const Operand& op) { vcmpngesd(x, x, op); }
1366void vcmpngess(const Xmm& x, const Operand& op) { vcmpngess(x, x, op); }
1367void vcmpngt_uqpd(const Xmm& x, const Operand& op) { vcmpngt_uqpd(x, x, op); }
1368void vcmpngt_uqps(const Xmm& x, const Operand& op) { vcmpngt_uqps(x, x, op); }
1369void vcmpngt_uqsd(const Xmm& x, const Operand& op) { vcmpngt_uqsd(x, x, op); }
1370void vcmpngt_uqss(const Xmm& x, const Operand& op) { vcmpngt_uqss(x, x, op); }
1371void vcmpngtpd(const Xmm& x, const Operand& op) { vcmpngtpd(x, x, op); }
1372void vcmpngtps(const Xmm& x, const Operand& op) { vcmpngtps(x, x, op); }
1373void vcmpngtsd(const Xmm& x, const Operand& op) { vcmpngtsd(x, x, op); }
1374void vcmpngtss(const Xmm& x, const Operand& op) { vcmpngtss(x, x, op); }
1375void vcmpnle_uqpd(const Xmm& x, const Operand& op) { vcmpnle_uqpd(x, x, op); }
1376void vcmpnle_uqps(const Xmm& x, const Operand& op) { vcmpnle_uqps(x, x, op); }
1377void vcmpnle_uqsd(const Xmm& x, const Operand& op) { vcmpnle_uqsd(x, x, op); }
1378void vcmpnle_uqss(const Xmm& x, const Operand& op) { vcmpnle_uqss(x, x, op); }
1379void vcmpnlepd(const Xmm& x, const Operand& op) { vcmpnlepd(x, x, op); }
1380void vcmpnleps(const Xmm& x, const Operand& op) { vcmpnleps(x, x, op); }
1381void vcmpnlesd(const Xmm& x, const Operand& op) { vcmpnlesd(x, x, op); }
1382void vcmpnless(const Xmm& x, const Operand& op) { vcmpnless(x, x, op); }
1383void vcmpnlt_uqpd(const Xmm& x, const Operand& op) { vcmpnlt_uqpd(x, x, op); }
1384void vcmpnlt_uqps(const Xmm& x, const Operand& op) { vcmpnlt_uqps(x, x, op); }
1385void vcmpnlt_uqsd(const Xmm& x, const Operand& op) { vcmpnlt_uqsd(x, x, op); }
1386void vcmpnlt_uqss(const Xmm& x, const Operand& op) { vcmpnlt_uqss(x, x, op); }
1387void vcmpnltpd(const Xmm& x, const Operand& op) { vcmpnltpd(x, x, op); }
1388void vcmpnltps(const Xmm& x, const Operand& op) { vcmpnltps(x, x, op); }
1389void vcmpnltsd(const Xmm& x, const Operand& op) { vcmpnltsd(x, x, op); }
1390void vcmpnltss(const Xmm& x, const Operand& op) { vcmpnltss(x, x, op); }
1391void vcmpord_spd(const Xmm& x, const Operand& op) { vcmpord_spd(x, x, op); }
1392void vcmpord_sps(const Xmm& x, const Operand& op) { vcmpord_sps(x, x, op); }
1393void vcmpord_ssd(const Xmm& x, const Operand& op) { vcmpord_ssd(x, x, op); }
1394void vcmpord_sss(const Xmm& x, const Operand& op) { vcmpord_sss(x, x, op); }
1395void vcmpordpd(const Xmm& x, const Operand& op) { vcmpordpd(x, x, op); }
1396void vcmpordps(const Xmm& x, const Operand& op) { vcmpordps(x, x, op); }
1397void vcmpordsd(const Xmm& x, const Operand& op) { vcmpordsd(x, x, op); }
1398void vcmpordss(const Xmm& x, const Operand& op) { vcmpordss(x, x, op); }
1399void vcmppd(const Xmm& x, const Operand& op, uint8 imm) { vcmppd(x, x, op, imm); }
1400void vcmpps(const Xmm& x, const Operand& op, uint8 imm) { vcmpps(x, x, op, imm); }
1401void vcmpsd(const Xmm& x, const Operand& op, uint8 imm) { vcmpsd(x, x, op, imm); }
1402void vcmpss(const Xmm& x, const Operand& op, uint8 imm) { vcmpss(x, x, op, imm); }
1403void vcmptrue_uspd(const Xmm& x, const Operand& op) { vcmptrue_uspd(x, x, op); }
1404void vcmptrue_usps(const Xmm& x, const Operand& op) { vcmptrue_usps(x, x, op); }
1405void vcmptrue_ussd(const Xmm& x, const Operand& op) { vcmptrue_ussd(x, x, op); }
1406void vcmptrue_usss(const Xmm& x, const Operand& op) { vcmptrue_usss(x, x, op); }
1407void vcmptruepd(const Xmm& x, const Operand& op) { vcmptruepd(x, x, op); }
1408void vcmptrueps(const Xmm& x, const Operand& op) { vcmptrueps(x, x, op); }
1409void vcmptruesd(const Xmm& x, const Operand& op) { vcmptruesd(x, x, op); }
1410void vcmptruess(const Xmm& x, const Operand& op) { vcmptruess(x, x, op); }
1411void vcmpunord_spd(const Xmm& x, const Operand& op) { vcmpunord_spd(x, x, op); }
1412void vcmpunord_sps(const Xmm& x, const Operand& op) { vcmpunord_sps(x, x, op); }
1413void vcmpunord_ssd(const Xmm& x, const Operand& op) { vcmpunord_ssd(x, x, op); }
1414void vcmpunord_sss(const Xmm& x, const Operand& op) { vcmpunord_sss(x, x, op); }
1415void vcmpunordpd(const Xmm& x, const Operand& op) { vcmpunordpd(x, x, op); }
1416void vcmpunordps(const Xmm& x, const Operand& op) { vcmpunordps(x, x, op); }
1417void vcmpunordsd(const Xmm& x, const Operand& op) { vcmpunordsd(x, x, op); }
1418void vcmpunordss(const Xmm& x, const Operand& op) { vcmpunordss(x, x, op); }
1419void vcvtsd2ss(const Xmm& x, const Operand& op) { vcvtsd2ss(x, x, op); }
1420void vcvtsi2sd(const Xmm& x, const Operand& op) { vcvtsi2sd(x, x, op); }
1421void vcvtsi2ss(const Xmm& x, const Operand& op) { vcvtsi2ss(x, x, op); }
1422void vcvtss2sd(const Xmm& x, const Operand& op) { vcvtss2sd(x, x, op); }
1423void vdppd(const Xmm& x, const Operand& op, uint8 imm) { vdppd(x, x, op, imm); }
1424void vdpps(const Xmm& x, const Operand& op, uint8 imm) { vdpps(x, x, op, imm); }
1425void vinsertps(const Xmm& x, const Operand& op, uint8 imm) { vinsertps(x, x, op, imm); }
1426void vmpsadbw(const Xmm& x, const Operand& op, uint8 imm) { vmpsadbw(x, x, op, imm); }
1427void vpackssdw(const Xmm& x, const Operand& op) { vpackssdw(x, x, op); }
1428void vpacksswb(const Xmm& x, const Operand& op) { vpacksswb(x, x, op); }
1429void vpackusdw(const Xmm& x, const Operand& op) { vpackusdw(x, x, op); }
1430void vpackuswb(const Xmm& x, const Operand& op) { vpackuswb(x, x, op); }
1431void vpaddb(const Xmm& x, const Operand& op) { vpaddb(x, x, op); }
1432void vpaddd(const Xmm& x, const Operand& op) { vpaddd(x, x, op); }
1433void vpaddq(const Xmm& x, const Operand& op) { vpaddq(x, x, op); }
1434void vpaddsb(const Xmm& x, const Operand& op) { vpaddsb(x, x, op); }
1435void vpaddsw(const Xmm& x, const Operand& op) { vpaddsw(x, x, op); }
1436void vpaddusb(const Xmm& x, const Operand& op) { vpaddusb(x, x, op); }
1437void vpaddusw(const Xmm& x, const Operand& op) { vpaddusw(x, x, op); }
1438void vpaddw(const Xmm& x, const Operand& op) { vpaddw(x, x, op); }
1439void vpalignr(const Xmm& x, const Operand& op, uint8 imm) { vpalignr(x, x, op, imm); }
1440void vpand(const Xmm& x, const Operand& op) { vpand(x, x, op); }
1441void vpandn(const Xmm& x, const Operand& op) { vpandn(x, x, op); }
1442void vpavgb(const Xmm& x, const Operand& op) { vpavgb(x, x, op); }
1443void vpavgw(const Xmm& x, const Operand& op) { vpavgw(x, x, op); }
1444void vpblendd(const Xmm& x, const Operand& op, uint8 imm) { vpblendd(x, x, op, imm); }
1445void vpblendvb(const Xmm& x1, const Operand& op, const Xmm& x4) { vpblendvb(x1, x1, op, x4); }
1446void vpblendw(const Xmm& x, const Operand& op, uint8 imm) { vpblendw(x, x, op, imm); }
1447void vpclmulqdq(const Xmm& x, const Operand& op, uint8 imm) { vpclmulqdq(x, x, op, imm); }
1448void vpcmpeqb(const Xmm& x, const Operand& op) { vpcmpeqb(x, x, op); }
1449void vpcmpeqd(const Xmm& x, const Operand& op) { vpcmpeqd(x, x, op); }
1450void vpcmpeqq(const Xmm& x, const Operand& op) { vpcmpeqq(x, x, op); }
1451void vpcmpeqw(const Xmm& x, const Operand& op) { vpcmpeqw(x, x, op); }
1452void vpcmpgtb(const Xmm& x, const Operand& op) { vpcmpgtb(x, x, op); }
1453void vpcmpgtd(const Xmm& x, const Operand& op) { vpcmpgtd(x, x, op); }
1454void vpcmpgtq(const Xmm& x, const Operand& op) { vpcmpgtq(x, x, op); }
1455void vpcmpgtw(const Xmm& x, const Operand& op) { vpcmpgtw(x, x, op); }
1456void vphaddd(const Xmm& x, const Operand& op) { vphaddd(x, x, op); }
1457void vphaddsw(const Xmm& x, const Operand& op) { vphaddsw(x, x, op); }
1458void vphaddw(const Xmm& x, const Operand& op) { vphaddw(x, x, op); }
1459void vphsubd(const Xmm& x, const Operand& op) { vphsubd(x, x, op); }
1460void vphsubsw(const Xmm& x, const Operand& op) { vphsubsw(x, x, op); }
1461void vphsubw(const Xmm& x, const Operand& op) { vphsubw(x, x, op); }
1462void vpinsrb(const Xmm& x, const Operand& op, uint8 imm) { vpinsrb(x, x, op, imm); }
1463void vpinsrd(const Xmm& x, const Operand& op, uint8 imm) { vpinsrd(x, x, op, imm); }
1464void vpinsrq(const Xmm& x, const Operand& op, uint8 imm) { vpinsrq(x, x, op, imm); }
1465void vpinsrw(const Xmm& x, const Operand& op, uint8 imm) { vpinsrw(x, x, op, imm); }
1466void vpmaddubsw(const Xmm& x, const Operand& op) { vpmaddubsw(x, x, op); }
1467void vpmaddwd(const Xmm& x, const Operand& op) { vpmaddwd(x, x, op); }
1468void vpmaxsb(const Xmm& x, const Operand& op) { vpmaxsb(x, x, op); }
1469void vpmaxsd(const Xmm& x, const Operand& op) { vpmaxsd(x, x, op); }
1470void vpmaxsw(const Xmm& x, const Operand& op) { vpmaxsw(x, x, op); }
1471void vpmaxub(const Xmm& x, const Operand& op) { vpmaxub(x, x, op); }
1472void vpmaxud(const Xmm& x, const Operand& op) { vpmaxud(x, x, op); }
1473void vpmaxuw(const Xmm& x, const Operand& op) { vpmaxuw(x, x, op); }
1474void vpminsb(const Xmm& x, const Operand& op) { vpminsb(x, x, op); }
1475void vpminsd(const Xmm& x, const Operand& op) { vpminsd(x, x, op); }
1476void vpminsw(const Xmm& x, const Operand& op) { vpminsw(x, x, op); }
1477void vpminub(const Xmm& x, const Operand& op) { vpminub(x, x, op); }
1478void vpminud(const Xmm& x, const Operand& op) { vpminud(x, x, op); }
1479void vpminuw(const Xmm& x, const Operand& op) { vpminuw(x, x, op); }
1480void vpmuldq(const Xmm& x, const Operand& op) { vpmuldq(x, x, op); }
1481void vpmulhrsw(const Xmm& x, const Operand& op) { vpmulhrsw(x, x, op); }
1482void vpmulhuw(const Xmm& x, const Operand& op) { vpmulhuw(x, x, op); }
1483void vpmulhw(const Xmm& x, const Operand& op) { vpmulhw(x, x, op); }
1484void vpmulld(const Xmm& x, const Operand& op) { vpmulld(x, x, op); }
1485void vpmullw(const Xmm& x, const Operand& op) { vpmullw(x, x, op); }
1486void vpmuludq(const Xmm& x, const Operand& op) { vpmuludq(x, x, op); }
1487void vpor(const Xmm& x, const Operand& op) { vpor(x, x, op); }
1488void vpsadbw(const Xmm& x, const Operand& op) { vpsadbw(x, x, op); }
1489void vpsignb(const Xmm& x, const Operand& op) { vpsignb(x, x, op); }
1490void vpsignd(const Xmm& x, const Operand& op) { vpsignd(x, x, op); }
1491void vpsignw(const Xmm& x, const Operand& op) { vpsignw(x, x, op); }
1492void vpslld(const Xmm& x, const Operand& op) { vpslld(x, x, op); }
1493void vpslld(const Xmm& x, uint8 imm) { vpslld(x, x, imm); }
1494void vpslldq(const Xmm& x, uint8 imm) { vpslldq(x, x, imm); }
1495void vpsllq(const Xmm& x, const Operand& op) { vpsllq(x, x, op); }
1496void vpsllq(const Xmm& x, uint8 imm) { vpsllq(x, x, imm); }
1497void vpsllw(const Xmm& x, const Operand& op) { vpsllw(x, x, op); }
1498void vpsllw(const Xmm& x, uint8 imm) { vpsllw(x, x, imm); }
1499void vpsrad(const Xmm& x, const Operand& op) { vpsrad(x, x, op); }
1500void vpsrad(const Xmm& x, uint8 imm) { vpsrad(x, x, imm); }
1501void vpsraw(const Xmm& x, const Operand& op) { vpsraw(x, x, op); }
1502void vpsraw(const Xmm& x, uint8 imm) { vpsraw(x, x, imm); }
1503void vpsrld(const Xmm& x, const Operand& op) { vpsrld(x, x, op); }
1504void vpsrld(const Xmm& x, uint8 imm) { vpsrld(x, x, imm); }
1505void vpsrldq(const Xmm& x, uint8 imm) { vpsrldq(x, x, imm); }
1506void vpsrlq(const Xmm& x, const Operand& op) { vpsrlq(x, x, op); }
1507void vpsrlq(const Xmm& x, uint8 imm) { vpsrlq(x, x, imm); }
1508void vpsrlw(const Xmm& x, const Operand& op) { vpsrlw(x, x, op); }
1509void vpsrlw(const Xmm& x, uint8 imm) { vpsrlw(x, x, imm); }
1510void vpsubb(const Xmm& x, const Operand& op) { vpsubb(x, x, op); }
1511void vpsubd(const Xmm& x, const Operand& op) { vpsubd(x, x, op); }
1512void vpsubq(const Xmm& x, const Operand& op) { vpsubq(x, x, op); }
1513void vpsubsb(const Xmm& x, const Operand& op) { vpsubsb(x, x, op); }
1514void vpsubsw(const Xmm& x, const Operand& op) { vpsubsw(x, x, op); }
1515void vpsubusb(const Xmm& x, const Operand& op) { vpsubusb(x, x, op); }
1516void vpsubusw(const Xmm& x, const Operand& op) { vpsubusw(x, x, op); }
1517void vpsubw(const Xmm& x, const Operand& op) { vpsubw(x, x, op); }
1518void vpunpckhbw(const Xmm& x, const Operand& op) { vpunpckhbw(x, x, op); }
1519void vpunpckhdq(const Xmm& x, const Operand& op) { vpunpckhdq(x, x, op); }
1520void vpunpckhqdq(const Xmm& x, const Operand& op) { vpunpckhqdq(x, x, op); }
1521void vpunpckhwd(const Xmm& x, const Operand& op) { vpunpckhwd(x, x, op); }
1522void vpunpcklbw(const Xmm& x, const Operand& op) { vpunpcklbw(x, x, op); }
1523void vpunpckldq(const Xmm& x, const Operand& op) { vpunpckldq(x, x, op); }
1524void vpunpcklqdq(const Xmm& x, const Operand& op) { vpunpcklqdq(x, x, op); }
1525void vpunpcklwd(const Xmm& x, const Operand& op) { vpunpcklwd(x, x, op); }
1526void vpxor(const Xmm& x, const Operand& op) { vpxor(x, x, op); }
1527void vrcpss(const Xmm& x, const Operand& op) { vrcpss(x, x, op); }
1528void vroundsd(const Xmm& x, const Operand& op, uint8 imm) { vroundsd(x, x, op, imm); }
1529void vroundss(const Xmm& x, const Operand& op, uint8 imm) { vroundss(x, x, op, imm); }
1530void vrsqrtss(const Xmm& x, const Operand& op) { vrsqrtss(x, x, op); }
1531void vshufpd(const Xmm& x, const Operand& op, uint8 imm) { vshufpd(x, x, op, imm); }
1532void vshufps(const Xmm& x, const Operand& op, uint8 imm) { vshufps(x, x, op, imm); }
1533void vsqrtsd(const Xmm& x, const Operand& op) { vsqrtsd(x, x, op); }
1534void vsqrtss(const Xmm& x, const Operand& op) { vsqrtss(x, x, op); }
1535void vunpckhpd(const Xmm& x, const Operand& op) { vunpckhpd(x, x, op); }
1536void vunpckhps(const Xmm& x, const Operand& op) { vunpckhps(x, x, op); }
1537void vunpcklpd(const Xmm& x, const Operand& op) { vunpcklpd(x, x, op); }
1538void vunpcklps(const Xmm& x, const Operand& op) { vunpcklps(x, x, op); }
1539#endif
1540#ifdef XBYAK64
1541void jecxz(std::string label) { db(0x67); opJmp(label, T_SHORT, 0xe3, 0, 0); }
1542void jecxz(const Label& label) { db(0x67); opJmp(label, T_SHORT, 0xe3, 0, 0); }
1543void jrcxz(std::string label) { opJmp(label, T_SHORT, 0xe3, 0, 0); }
1544void jrcxz(const Label& label) { opJmp(label, T_SHORT, 0xe3, 0, 0); }
1545void cdqe() { db(0x48); db(0x98); }
1546void cqo() { db(0x48); db(0x99); }
1547void movsq() { db(0x48); db(0xA5); }
1548void cmpxchg16b(const Address& addr) { opModM(addr, Reg64(1), 0x0F, 0xC7); }
1549void movq(const Reg64& reg, const Mmx& mmx) { if (mmx.isXMM()) db(0x66); opModR(mmx, reg, 0x0F, 0x7E); }
1550void movq(const Mmx& mmx, const Reg64& reg) { if (mmx.isXMM()) db(0x66); opModR(mmx, reg, 0x0F, 0x6E); }
1551void movsxd(const Reg64& reg, const Operand& op) { if (!op.isBit(32)) throw Error(ERR_BAD_COMBINATION); opModRM(reg, op, op.isREG(), op.isMEM(), 0x63); }
1552void pextrq(const Operand& op, const Xmm& xmm, uint8 imm) { if (!op.isREG(64) && !op.isMEM()) throw Error(ERR_BAD_COMBINATION); opGen(Reg64(xmm.getIdx()), op, 0x16, 0x66, 0, imm, 0x3A); }
1553void pinsrq(const Xmm& xmm, const Operand& op, uint8 imm) { if (!op.isREG(64) && !op.isMEM()) throw Error(ERR_BAD_COMBINATION); opGen(Reg64(xmm.getIdx()), op, 0x22, 0x66, 0, imm, 0x3A); }
1554void vcvtss2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F3 | T_W1 | T_EVEX | T_EW1 | T_ER_X | T_N8, 0x2D); }
1555void vcvttss2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F3 | T_W1 | T_EVEX | T_EW1 | T_SAE_X | T_N8, 0x2C); }
1556void vcvtsd2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F2 | T_W1 | T_EVEX | T_EW1 | T_N4 | T_ER_X, 0x2D); }
1557void vcvttsd2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, T_0F | T_F2 | T_W1 | T_EVEX | T_EW1 | T_N4 | T_SAE_X, 0x2C); }
1558void vmovq(const Xmm& x, const Reg64& r) { opAVX_X_X_XM(x, xm0, Xmm(r.getIdx()), T_66 | T_0F | T_W1 | T_EVEX | T_EW1, 0x6E); }
1559void vmovq(const Reg64& r, const Xmm& x) { opAVX_X_X_XM(x, xm0, Xmm(r.getIdx()), T_66 | T_0F | T_W1 | T_EVEX | T_EW1, 0x7E); }
1560#else
1561void jcxz(std::string label) { db(0x67); opJmp(label, T_SHORT, 0xe3, 0, 0); }
1562void jcxz(const Label& label) { db(0x67); opJmp(label, T_SHORT, 0xe3, 0, 0); }
1563void jecxz(std::string label) { opJmp(label, T_SHORT, 0xe3, 0, 0); }
1564void jecxz(const Label& label) { opJmp(label, T_SHORT, 0xe3, 0, 0); }
1565void aaa() { db(0x37); }
1566void aad() { db(0xD5); db(0x0A); }
1567void aam() { db(0xD4); db(0x0A); }
1568void aas() { db(0x3F); }
1569void daa() { db(0x27); }
1570void das() { db(0x2F); }
1571void popad() { db(0x61); }
1572void popfd() { db(0x9D); }
1573void pusha() { db(0x60); }
1574void pushad() { db(0x60); }
1575void pushfd() { db(0x9C); }
1576void popa() { db(0x61); }
1577#endif
1578#ifndef XBYAK_NO_OP_NAMES
1579void and(const Operand& op1, const Operand& op2) { and_(op1, op2); }
1580void and(const Operand& op, uint32 imm) { and_(op, imm); }
1581void or(const Operand& op1, const Operand& op2) { or_(op1, op2); }
1582void or(const Operand& op, uint32 imm) { or_(op, imm); }
1583void xor(const Operand& op1, const Operand& op2) { xor_(op1, op2); }
1584void xor(const Operand& op, uint32 imm) { xor_(op, imm); }
1585void not(const Operand& op) { not_(op); }
1586#endif
1587#ifndef XBYAK_DISABLE_AVX512
1588void kaddb(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W0, 0x4A); }
1589void kaddd(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W1, 0x4A); }
1590void kaddq(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W1, 0x4A); }
1591void kaddw(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W0, 0x4A); }
1592void kandb(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W0, 0x41); }
1593void kandd(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W1, 0x41); }
1594void kandnb(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W0, 0x42); }
1595void kandnd(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W1, 0x42); }
1596void kandnq(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W1, 0x42); }
1597void kandnw(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W0, 0x42); }
1598void kandq(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W1, 0x41); }
1599void kandw(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W0, 0x41); }
1600void kmovb(const Address& addr, const Opmask& k) { opVex(k, 0, addr, T_L0 | T_0F | T_66 | T_W0, 0x91); }
1601void kmovb(const Opmask& k, const Operand& op) { opVex(k, 0, op, T_L0 | T_0F | T_66 | T_W0, 0x90); }
1602void kmovb(const Opmask& k, const Reg32& r) { opVex(k, 0, r, T_L0 | T_0F | T_66 | T_W0, 0x92); }
1603void kmovb(const Reg32& r, const Opmask& k) { opVex(r, 0, k, T_L0 | T_0F | T_66 | T_W0, 0x93); }
1604void kmovd(const Address& addr, const Opmask& k) { opVex(k, 0, addr, T_L0 | T_0F | T_66 | T_W1, 0x91); }
1605void kmovd(const Opmask& k, const Operand& op) { opVex(k, 0, op, T_L0 | T_0F | T_66 | T_W1, 0x90); }
1606void kmovd(const Opmask& k, const Reg32& r) { opVex(k, 0, r, T_L0 | T_0F | T_F2 | T_W0, 0x92); }
1607void kmovd(const Reg32& r, const Opmask& k) { opVex(r, 0, k, T_L0 | T_0F | T_F2 | T_W0, 0x93); }
1608void kmovq(const Address& addr, const Opmask& k) { opVex(k, 0, addr, T_L0 | T_0F | T_W1, 0x91); }
1609void kmovq(const Opmask& k, const Operand& op) { opVex(k, 0, op, T_L0 | T_0F | T_W1, 0x90); }
1610void kmovw(const Address& addr, const Opmask& k) { opVex(k, 0, addr, T_L0 | T_0F | T_W0, 0x91); }
1611void kmovw(const Opmask& k, const Operand& op) { opVex(k, 0, op, T_L0 | T_0F | T_W0, 0x90); }
1612void kmovw(const Opmask& k, const Reg32& r) { opVex(k, 0, r, T_L0 | T_0F | T_W0, 0x92); }
1613void kmovw(const Reg32& r, const Opmask& k) { opVex(r, 0, k, T_L0 | T_0F | T_W0, 0x93); }
1614void knotb(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_66 | T_W0, 0x44); }
1615void knotd(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_66 | T_W1, 0x44); }
1616void knotq(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_W1, 0x44); }
1617void knotw(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_W0, 0x44); }
1618void korb(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W0, 0x45); }
1619void kord(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W1, 0x45); }
1620void korq(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W1, 0x45); }
1621void kortestb(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_66 | T_W0, 0x98); }
1622void kortestd(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_66 | T_W1, 0x98); }
1623void kortestq(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_W1, 0x98); }
1624void kortestw(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_W0, 0x98); }
1625void korw(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W0, 0x45); }
1626void kshiftlb(const Opmask& r1, const Opmask& r2, uint8 imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W0, 0x32, imm); }
1627void kshiftld(const Opmask& r1, const Opmask& r2, uint8 imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W0, 0x33, imm); }
1628void kshiftlq(const Opmask& r1, const Opmask& r2, uint8 imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W1, 0x33, imm); }
1629void kshiftlw(const Opmask& r1, const Opmask& r2, uint8 imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W1, 0x32, imm); }
1630void kshiftrb(const Opmask& r1, const Opmask& r2, uint8 imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W0, 0x30, imm); }
1631void kshiftrd(const Opmask& r1, const Opmask& r2, uint8 imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W0, 0x31, imm); }
1632void kshiftrq(const Opmask& r1, const Opmask& r2, uint8 imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W1, 0x31, imm); }
1633void kshiftrw(const Opmask& r1, const Opmask& r2, uint8 imm) { opVex(r1, 0, r2, T_66 | T_0F3A | T_W1, 0x30, imm); }
1634void ktestb(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_66 | T_W0, 0x99); }
1635void ktestd(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_66 | T_W1, 0x99); }
1636void ktestq(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_W1, 0x99); }
1637void ktestw(const Opmask& r1, const Opmask& r2) { opVex(r1, 0, r2, T_0F | T_W0, 0x99); }
1638void kunpckbw(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W0, 0x4B); }
1639void kunpckdq(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W1, 0x4B); }
1640void kunpckwd(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W0, 0x4B); }
1641void kxnorb(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W0, 0x46); }
1642void kxnord(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W1, 0x46); }
1643void kxnorq(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W1, 0x46); }
1644void kxnorw(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W0, 0x46); }
1645void kxorb(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W0, 0x47); }
1646void kxord(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_66 | T_W1, 0x47); }
1647void kxorq(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W1, 0x47); }
1648void kxorw(const Opmask& r1, const Opmask& r2, const Opmask& r3) { opVex(r1, &r2, r3, T_L1 | T_0F | T_W0, 0x47); }
1649void v4fmaddps(const Zmm& z1, const Zmm& z2, const Address& addr) { opAVX_X_X_XM(z1, z2, addr, T_0F38 | T_F2 | T_EW0 | T_YMM | T_MUST_EVEX | T_N16, 0x9A); }
1650void v4fmaddss(const Xmm& x1, const Xmm& x2, const Address& addr) { opAVX_X_X_XM(x1, x2, addr, T_0F38 | T_F2 | T_EW0 | T_MUST_EVEX | T_N16, 0x9B); }
1651void v4fnmaddps(const Zmm& z1, const Zmm& z2, const Address& addr) { opAVX_X_X_XM(z1, z2, addr, T_0F38 | T_F2 | T_EW0 | T_YMM | T_MUST_EVEX | T_N16, 0xAA); }
1652void v4fnmaddss(const Xmm& x1, const Xmm& x2, const Address& addr) { opAVX_X_X_XM(x1, x2, addr, T_0F38 | T_F2 | T_EW0 | T_MUST_EVEX | T_N16, 0xAB); }
1653void valignd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x03, imm); }
1654void valignq(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x03, imm); }
1655void vblendmpd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x65); }
1656void vblendmps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x65); }
1657void vbroadcastf32x2(const Ymm& y, const Operand& op) { opAVX_X_XM_IMM(y, op, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0 | T_N8, 0x19); }
1658void vbroadcastf32x4(const Ymm& y, const Address& addr) { opAVX_X_XM_IMM(y, addr, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0 | T_N16, 0x1A); }
1659void vbroadcastf32x8(const Zmm& y, const Address& addr) { opAVX_X_XM_IMM(y, addr, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0 | T_N32, 0x1B); }
1660void vbroadcastf64x2(const Ymm& y, const Address& addr) { opAVX_X_XM_IMM(y, addr, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW1 | T_N16, 0x1A); }
1661void vbroadcastf64x4(const Zmm& y, const Address& addr) { opAVX_X_XM_IMM(y, addr, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW1 | T_N32, 0x1B); }
1662void vbroadcasti32x2(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0 | T_N8, 0x59); }
1663void vbroadcasti32x4(const Ymm& y, const Operand& op) { opAVX_X_XM_IMM(y, op, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0 | T_N16, 0x5A); }
1664void vbroadcasti32x8(const Zmm& z, const Operand& op) { opAVX_X_XM_IMM(z, op, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0 | T_N32, 0x5B); }
1665void vbroadcasti64x2(const Ymm& y, const Operand& op) { opAVX_X_XM_IMM(y, op, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW1 | T_N16, 0x5A); }
1666void vbroadcasti64x4(const Zmm& z, const Operand& op) { opAVX_X_XM_IMM(z, op, T_66 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW1 | T_N32, 0x5B); }
1667void vcmppd(const Opmask& k, const Xmm& x, const Operand& op, uint8 imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0xC2, imm); }
1668void vcmpps(const Opmask& k, const Xmm& x, const Operand& op, uint8 imm) { opAVX_K_X_XM(k, x, op, T_0F | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0xC2, imm); }
1669void vcmpsd(const Opmask& k, const Xmm& x, const Operand& op, uint8 imm) { opAVX_K_X_XM(k, x, op, T_N8 | T_F2 | T_0F | T_EW1 | T_SAE_Z | T_MUST_EVEX, 0xC2, imm); }
1670void vcmpss(const Opmask& k, const Xmm& x, const Operand& op, uint8 imm) { opAVX_K_X_XM(k, x, op, T_N4 | T_F3 | T_0F | T_EW0 | T_SAE_Z | T_MUST_EVEX, 0xC2, imm); }
1671void vcompressb(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N1 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x63); }
1672void vcompresspd(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x8A); }
1673void vcompressps(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x8A); }
1674void vcompressw(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N2 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x63); }
1675void vcvtpd2qq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F | T_EW1 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B64, 0x7B); }
1676void vcvtpd2udq(const Xmm& x, const Operand& op) { opCvt2(x, op, T_0F | T_YMM | T_MUST_EVEX | T_EW1 | T_B64 | T_ER_Z, 0x79); }
1677void vcvtpd2uqq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F | T_EW1 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B64, 0x79); }
1678void vcvtps2qq(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_66 | T_0F | T_YMM | T_MUST_EVEX | T_EW0 | T_B32 | T_N8 | T_N_VL | T_ER_Y, 0x7B); }
1679void vcvtps2udq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_0F | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B32, 0x79); }
1680void vcvtps2uqq(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_66 | T_0F | T_YMM | T_MUST_EVEX | T_EW0 | T_B32 | T_N8 | T_N_VL | T_ER_Y, 0x79); }
1681void vcvtqq2pd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_F3 | T_0F | T_EW1 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B64, 0xE6); }
1682void vcvtqq2ps(const Xmm& x, const Operand& op) { opCvt2(x, op, T_0F | T_YMM | T_MUST_EVEX | T_EW1 | T_B64 | T_ER_Z, 0x5B); }
1683void vcvtsd2usi(const Reg32e& r, const Operand& op) { int type = (T_F2 | T_0F | T_MUST_EVEX | T_N8 | T_ER_X) | (r.isREG(64) ? T_EW1 : T_EW0); opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, type, 0x79); }
1684void vcvtss2usi(const Reg32e& r, const Operand& op) { int type = (T_F3 | T_0F | T_MUST_EVEX | T_N4 | T_ER_X) | (r.isREG(64) ? T_EW1 : T_EW0); opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, type, 0x79); }
1685void vcvttpd2qq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x7A); }
1686void vcvttpd2udq(const Xmm& x, const Operand& op) { opCvt2(x, op, T_0F | T_YMM | T_MUST_EVEX | T_EW1 | T_B64 | T_SAE_Z, 0x78); }
1687void vcvttpd2uqq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x78); }
1688void vcvttps2qq(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_66 | T_0F | T_YMM | T_MUST_EVEX | T_EW0 | T_B32 | T_N8 | T_N_VL | T_SAE_Y, 0x7A); }
1689void vcvttps2udq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_0F | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x78); }
1690void vcvttps2uqq(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_66 | T_0F | T_YMM | T_MUST_EVEX | T_EW0 | T_B32 | T_N8 | T_N_VL | T_SAE_Y, 0x78); }
1691void vcvttsd2usi(const Reg32e& r, const Operand& op) { int type = (T_F2 | T_0F | T_MUST_EVEX | T_N8 | T_SAE_X) | (r.isREG(64) ? T_EW1 : T_EW0); opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, type, 0x78); }
1692void vcvttss2usi(const Reg32e& r, const Operand& op) { int type = (T_F3 | T_0F | T_MUST_EVEX | T_N4 | T_SAE_X) | (r.isREG(64) ? T_EW1 : T_EW0); opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, type, 0x78); }
1693void vcvtudq2pd(const Xmm& x, const Operand& op) { checkCvt1(x, op); opVex(x, 0, op, T_F3 | T_0F | T_YMM | T_MUST_EVEX | T_EW0 | T_B32 | T_N8 | T_N_VL, 0x7A); }
1694void vcvtudq2ps(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_F2 | T_0F | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B32, 0x7A); }
1695void vcvtuqq2pd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_F3 | T_0F | T_EW1 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B64, 0x7A); }
1696void vcvtuqq2ps(const Xmm& x, const Operand& op) { opCvt2(x, op, T_F2 | T_0F | T_YMM | T_MUST_EVEX | T_EW1 | T_B64 | T_ER_Z, 0x7A); }
1697void vcvtusi2sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opCvt3(x1, x2, op, T_F2 | T_0F | T_MUST_EVEX, T_W1 | T_EW1 | T_ER_X | T_N8, T_W0 | T_EW0 | T_N4, 0x7B); }
1698void vcvtusi2ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opCvt3(x1, x2, op, T_F3 | T_0F | T_MUST_EVEX | T_ER_X, T_W1 | T_EW1 | T_N8, T_W0 | T_EW0 | T_N4, 0x7B); }
1699void vdbpsadbw(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x42, imm); }
1700void vexp2pd(const Zmm& z, const Operand& op) { opAVX_X_XM_IMM(z, op, T_66 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1 | T_B64 | T_SAE_Z, 0xC8); }
1701void vexp2ps(const Zmm& z, const Operand& op) { opAVX_X_XM_IMM(z, op, T_66 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0 | T_B32 | T_SAE_Z, 0xC8); }
1702void vexpandpd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x88); }
1703void vexpandps(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x88); }
1704void vextractf32x4(const Operand& op, const Ymm& r, uint8 imm) { if (!op.is(Operand::MEM | Operand::XMM)) throw Error(ERR_BAD_COMBINATION); opVex(r, 0, op, T_N16 | T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x19, imm); }
1705void vextractf32x8(const Operand& op, const Zmm& r, uint8 imm) { if (!op.is(Operand::MEM | Operand::YMM)) throw Error(ERR_BAD_COMBINATION); opVex(r, 0, op, T_N32 | T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x1B, imm); }
1706void vextractf64x2(const Operand& op, const Ymm& r, uint8 imm) { if (!op.is(Operand::MEM | Operand::XMM)) throw Error(ERR_BAD_COMBINATION); opVex(r, 0, op, T_N16 | T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x19, imm); }
1707void vextractf64x4(const Operand& op, const Zmm& r, uint8 imm) { if (!op.is(Operand::MEM | Operand::YMM)) throw Error(ERR_BAD_COMBINATION); opVex(r, 0, op, T_N32 | T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x1B, imm); }
1708void vextracti32x4(const Operand& op, const Ymm& r, uint8 imm) { if (!op.is(Operand::MEM | Operand::XMM)) throw Error(ERR_BAD_COMBINATION); opVex(r, 0, op, T_N16 | T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x39, imm); }
1709void vextracti32x8(const Operand& op, const Zmm& r, uint8 imm) { if (!op.is(Operand::MEM | Operand::YMM)) throw Error(ERR_BAD_COMBINATION); opVex(r, 0, op, T_N32 | T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x3B, imm); }
1710void vextracti64x2(const Operand& op, const Ymm& r, uint8 imm) { if (!op.is(Operand::MEM | Operand::XMM)) throw Error(ERR_BAD_COMBINATION); opVex(r, 0, op, T_N16 | T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x39, imm); }
1711void vextracti64x4(const Operand& op, const Zmm& r, uint8 imm) { if (!op.is(Operand::MEM | Operand::YMM)) throw Error(ERR_BAD_COMBINATION); opVex(r, 0, op, T_N32 | T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x3B, imm); }
1712void vfixupimmpd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x54, imm); }
1713void vfixupimmps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x54, imm); }
1714void vfixupimmsd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F3A | T_EW1 | T_SAE_Z | T_MUST_EVEX, 0x55, imm); }
1715void vfixupimmss(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F3A | T_EW0 | T_SAE_Z | T_MUST_EVEX, 0x55, imm); }
1716void vfpclasspd(const Opmask& k, const Operand& op, uint8 imm) { if (!op.isBit(128|256|512)) throw Error(ERR_BAD_MEM_SIZE); Reg x = k; x.setBit(op.getBit()); opVex(x, 0, op, T_66 | T_0F3A | T_MUST_EVEX | T_YMM | T_EW1 | T_B64, 0x66, imm); }
1717void vfpclassps(const Opmask& k, const Operand& op, uint8 imm) { if (!op.isBit(128|256|512)) throw Error(ERR_BAD_MEM_SIZE); Reg x = k; x.setBit(op.getBit()); opVex(x, 0, op, T_66 | T_0F3A | T_MUST_EVEX | T_YMM | T_EW0 | T_B32, 0x66, imm); }
1718void vfpclasssd(const Opmask& k, const Operand& op, uint8 imm) { if (!op.isXMEM()) throw Error(ERR_BAD_MEM_SIZE); opVex(k, 0, op, T_66 | T_0F3A | T_MUST_EVEX | T_EW1 | T_N8, 0x67, imm); }
1719void vfpclassss(const Opmask& k, const Operand& op, uint8 imm) { if (!op.isXMEM()) throw Error(ERR_BAD_MEM_SIZE); opVex(k, 0, op, T_66 | T_0F3A | T_MUST_EVEX | T_EW0 | T_N4, 0x67, imm); }
1720void vgatherdpd(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x92, 1); }
1721void vgatherdps(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x92, 0); }
1722void vgatherpf0dpd(const Address& addr) { opGatherFetch(addr, zm1, T_66 | T_0F38 | T_EW1 | T_MUST_EVEX | T_N8 | T_M_K, 0xC6, Operand::YMM); }
1723void vgatherpf0dps(const Address& addr) { opGatherFetch(addr, zm1, T_66 | T_0F38 | T_EW0 | T_MUST_EVEX | T_N4 | T_M_K, 0xC6, Operand::ZMM); }
1724void vgatherpf0qpd(const Address& addr) { opGatherFetch(addr, zm1, T_66 | T_0F38 | T_EW1 | T_MUST_EVEX | T_N8 | T_M_K, 0xC7, Operand::ZMM); }
1725void vgatherpf0qps(const Address& addr) { opGatherFetch(addr, zm1, T_66 | T_0F38 | T_EW0 | T_MUST_EVEX | T_N4 | T_M_K, 0xC7, Operand::ZMM); }
1726void vgatherpf1dpd(const Address& addr) { opGatherFetch(addr, zm2, T_66 | T_0F38 | T_EW1 | T_MUST_EVEX | T_N8 | T_M_K, 0xC6, Operand::YMM); }
1727void vgatherpf1dps(const Address& addr) { opGatherFetch(addr, zm2, T_66 | T_0F38 | T_EW0 | T_MUST_EVEX | T_N4 | T_M_K, 0xC6, Operand::ZMM); }
1728void vgatherpf1qpd(const Address& addr) { opGatherFetch(addr, zm2, T_66 | T_0F38 | T_EW1 | T_MUST_EVEX | T_N8 | T_M_K, 0xC7, Operand::ZMM); }
1729void vgatherpf1qps(const Address& addr) { opGatherFetch(addr, zm2, T_66 | T_0F38 | T_EW0 | T_MUST_EVEX | T_N4 | T_M_K, 0xC7, Operand::ZMM); }
1730void vgatherqpd(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x93, 0); }
1731void vgatherqps(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x93, 2); }
1732void vgetexppd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x42); }
1733void vgetexpps(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x42); }
1734void vgetexpsd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_SAE_X | T_MUST_EVEX, 0x43); }
1735void vgetexpss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_SAE_X | T_MUST_EVEX, 0x43); }
1736void vgetmantpd(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(x, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x26, imm); }
1737void vgetmantps(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(x, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x26, imm); }
1738void vgetmantsd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F3A | T_EW1 | T_SAE_X | T_MUST_EVEX, 0x27, imm); }
1739void vgetmantss(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F3A | T_EW0 | T_SAE_X | T_MUST_EVEX, 0x27, imm); }
1740void vinsertf32x4(const Ymm& r1, const Ymm& r2, const Operand& op, uint8 imm) {if (!(r1.getKind() == r2.getKind() && op.is(Operand::MEM | Operand::XMM))) throw Error(ERR_BAD_COMBINATION); opVex(r1, &r2, op, T_N16 | T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x18, imm); }
1741void vinsertf32x8(const Zmm& r1, const Zmm& r2, const Operand& op, uint8 imm) {if (!op.is(Operand::MEM | Operand::YMM)) throw Error(ERR_BAD_COMBINATION); opVex(r1, &r2, op, T_N32 | T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x1A, imm); }
1742void vinsertf64x2(const Ymm& r1, const Ymm& r2, const Operand& op, uint8 imm) {if (!(r1.getKind() == r2.getKind() && op.is(Operand::MEM | Operand::XMM))) throw Error(ERR_BAD_COMBINATION); opVex(r1, &r2, op, T_N16 | T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x18, imm); }
1743void vinsertf64x4(const Zmm& r1, const Zmm& r2, const Operand& op, uint8 imm) {if (!op.is(Operand::MEM | Operand::YMM)) throw Error(ERR_BAD_COMBINATION); opVex(r1, &r2, op, T_N32 | T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x1A, imm); }
1744void vinserti32x4(const Ymm& r1, const Ymm& r2, const Operand& op, uint8 imm) {if (!(r1.getKind() == r2.getKind() && op.is(Operand::MEM | Operand::XMM))) throw Error(ERR_BAD_COMBINATION); opVex(r1, &r2, op, T_N16 | T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x38, imm); }
1745void vinserti32x8(const Zmm& r1, const Zmm& r2, const Operand& op, uint8 imm) {if (!op.is(Operand::MEM | Operand::YMM)) throw Error(ERR_BAD_COMBINATION); opVex(r1, &r2, op, T_N32 | T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x3A, imm); }
1746void vinserti64x2(const Ymm& r1, const Ymm& r2, const Operand& op, uint8 imm) {if (!(r1.getKind() == r2.getKind() && op.is(Operand::MEM | Operand::XMM))) throw Error(ERR_BAD_COMBINATION); opVex(r1, &r2, op, T_N16 | T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x38, imm); }
1747void vinserti64x4(const Zmm& r1, const Zmm& r2, const Operand& op, uint8 imm) {if (!op.is(Operand::MEM | Operand::YMM)) throw Error(ERR_BAD_COMBINATION); opVex(r1, &r2, op, T_N32 | T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x3A, imm); }
1748void vmovdqa32(const Address& addr, const Xmm& x) { opAVX_X_XM_IMM(x, addr, T_66 | T_0F | T_EW0 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX | T_M_K, 0x7F); }
1749void vmovdqa32(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F | T_EW0 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX, 0x6F); }
1750void vmovdqa64(const Address& addr, const Xmm& x) { opAVX_X_XM_IMM(x, addr, T_66 | T_0F | T_EW1 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX | T_M_K, 0x7F); }
1751void vmovdqa64(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F | T_EW1 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX, 0x6F); }
1752void vmovdqu16(const Address& addr, const Xmm& x) { opAVX_X_XM_IMM(x, addr, T_F2 | T_0F | T_EW1 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX | T_M_K, 0x7F); }
1753void vmovdqu16(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_F2 | T_0F | T_EW1 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX, 0x6F); }
1754void vmovdqu32(const Address& addr, const Xmm& x) { opAVX_X_XM_IMM(x, addr, T_F3 | T_0F | T_EW0 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX | T_M_K, 0x7F); }
1755void vmovdqu32(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_F3 | T_0F | T_EW0 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX, 0x6F); }
1756void vmovdqu64(const Address& addr, const Xmm& x) { opAVX_X_XM_IMM(x, addr, T_F3 | T_0F | T_EW1 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX | T_M_K, 0x7F); }
1757void vmovdqu64(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_F3 | T_0F | T_EW1 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX, 0x6F); }
1758void vmovdqu8(const Address& addr, const Xmm& x) { opAVX_X_XM_IMM(x, addr, T_F2 | T_0F | T_EW0 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX | T_M_K, 0x7F); }
1759void vmovdqu8(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_F2 | T_0F | T_EW0 | T_YMM | T_ER_X | T_ER_Y | T_ER_Z | T_MUST_EVEX, 0x6F); }
1760void vp4dpwssd(const Zmm& z1, const Zmm& z2, const Address& addr) { opAVX_X_X_XM(z1, z2, addr, T_0F38 | T_F2 | T_EW0 | T_YMM | T_MUST_EVEX | T_N16, 0x52); }
1761void vp4dpwssds(const Zmm& z1, const Zmm& z2, const Address& addr) { opAVX_X_X_XM(z1, z2, addr, T_0F38 | T_F2 | T_EW0 | T_YMM | T_MUST_EVEX | T_N16, 0x53); }
1762void vpabsq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_MUST_EVEX | T_EW1 | T_B64 | T_YMM, 0x1F); }
1763void vpandd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0xDB); }
1764void vpandnd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0xDF); }
1765void vpandnq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0xDF); }
1766void vpandq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0xDB); }
1767void vpblendmb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x66); }
1768void vpblendmd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x64); }
1769void vpblendmq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x64); }
1770void vpblendmw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x66); }
1771void vpbroadcastb(const Xmm& x, const Reg8& r) { opVex(x, 0, r, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x7A); }
1772void vpbroadcastd(const Xmm& x, const Reg32& r) { opVex(x, 0, r, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x7C); }
1773void vpbroadcastmb2q(const Xmm& x, const Opmask& k) { opVex(x, 0, k, T_F3 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW1, 0x2A); }
1774void vpbroadcastmw2d(const Xmm& x, const Opmask& k) { opVex(x, 0, k, T_F3 | T_0F38 | T_YMM | T_MUST_EVEX | T_EW0, 0x3A); }
1775void vpbroadcastw(const Xmm& x, const Reg16& r) { opVex(x, 0, r, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x7B); }
1776void vpcmpb(const Opmask& k, const Xmm& x, const Operand& op, uint8 imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x3F, imm); }
1777void vpcmpd(const Opmask& k, const Xmm& x, const Operand& op, uint8 imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x1F, imm); }
1778void vpcmpeqb(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F | T_YMM | T_MUST_EVEX, 0x74); }
1779void vpcmpeqd(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F | T_YMM | T_MUST_EVEX | T_B32, 0x76); }
1780void vpcmpeqq(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x29); }
1781void vpcmpeqw(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F | T_YMM | T_MUST_EVEX, 0x75); }
1782void vpcmpgtb(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F | T_YMM | T_MUST_EVEX, 0x64); }
1783void vpcmpgtd(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x66); }
1784void vpcmpgtq(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x37); }
1785void vpcmpgtw(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F | T_YMM | T_MUST_EVEX, 0x65); }
1786void vpcmpq(const Opmask& k, const Xmm& x, const Operand& op, uint8 imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x1F, imm); }
1787void vpcmpub(const Opmask& k, const Xmm& x, const Operand& op, uint8 imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX, 0x3E, imm); }
1788void vpcmpud(const Opmask& k, const Xmm& x, const Operand& op, uint8 imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x1E, imm); }
1789void vpcmpuq(const Opmask& k, const Xmm& x, const Operand& op, uint8 imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x1E, imm); }
1790void vpcmpuw(const Opmask& k, const Xmm& x, const Operand& op, uint8 imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x3E, imm); }
1791void vpcmpw(const Opmask& k, const Xmm& x, const Operand& op, uint8 imm) { opAVX_K_X_XM(k, x, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX, 0x3F, imm); }
1792void vpcompressd(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x8B); }
1793void vpcompressq(const Operand& op, const Xmm& x) { opAVX_X_XM_IMM(x, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x8B); }
1794void vpconflictd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0xC4); }
1795void vpconflictq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0xC4); }
1796void vpdpbusd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x50); }
1797void vpdpbusds(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x51); }
1798void vpdpwssd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x52); }
1799void vpdpwssds(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x53); }
1800void vpermb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x8D); }
1801void vpermi2b(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x75); }
1802void vpermi2d(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x76); }
1803void vpermi2pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x77); }
1804void vpermi2ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x77); }
1805void vpermi2q(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x76); }
1806void vpermi2w(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x75); }
1807void vpermt2b(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x7D); }
1808void vpermt2d(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x7E); }
1809void vpermt2pd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x7F); }
1810void vpermt2ps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x7F); }
1811void vpermt2q(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x7E); }
1812void vpermt2w(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x7D); }
1813void vpermw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x8D); }
1814void vpexpandb(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_N1 | T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x62); }
1815void vpexpandd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x89); }
1816void vpexpandq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x89); }
1817void vpexpandw(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_N2 | T_66 | T_0F38 | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x62); }
1818void vpgatherdd(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x90, 0); }
1819void vpgatherdq(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x90, 1); }
1820void vpgatherqd(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x91, 2); }
1821void vpgatherqq(const Xmm& x, const Address& addr) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x91, 0); }
1822void vplzcntd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x44); }
1823void vplzcntq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x44); }
1824void vpmadd52huq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0xB5); }
1825void vpmadd52luq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0xB4); }
1826void vpmaxsq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x3D); }
1827void vpmaxuq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x3F); }
1828void vpminsq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x39); }
1829void vpminuq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x3B); }
1830void vpmovb2m(const Opmask& k, const Xmm& x) { opVex(k, 0, x, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0, 0x29); }
1831void vpmovd2m(const Opmask& k, const Xmm& x) { opVex(k, 0, x, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0, 0x39); }
1832void vpmovdb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x31, false); }
1833void vpmovdw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x33, true); }
1834void vpmovm2b(const Xmm& x, const Opmask& k) { opVex(x, 0, k, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0, 0x28); }
1835void vpmovm2d(const Xmm& x, const Opmask& k) { opVex(x, 0, k, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0, 0x38); }
1836void vpmovm2q(const Xmm& x, const Opmask& k) { opVex(x, 0, k, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1, 0x38); }
1837void vpmovm2w(const Xmm& x, const Opmask& k) { opVex(x, 0, k, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1, 0x28); }
1838void vpmovq2m(const Opmask& k, const Xmm& x) { opVex(k, 0, x, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1, 0x39); }
1839void vpmovqb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N2 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x32, false); }
1840void vpmovqd(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x35, true); }
1841void vpmovqw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x34, false); }
1842void vpmovsdb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x21, false); }
1843void vpmovsdw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x23, true); }
1844void vpmovsqb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N2 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x22, false); }
1845void vpmovsqd(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x25, true); }
1846void vpmovsqw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x24, false); }
1847void vpmovswb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x20, true); }
1848void vpmovusdb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x11, false); }
1849void vpmovusdw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x13, true); }
1850void vpmovusqb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N2 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x12, false); }
1851void vpmovusqd(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x15, true); }
1852void vpmovusqw(const Operand& op, const Xmm& x) { opVmov(op, x, T_N4 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x14, false); }
1853void vpmovuswb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x10, true); }
1854void vpmovw2m(const Opmask& k, const Xmm& x) { opVex(k, 0, x, T_F3 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1, 0x29); }
1855void vpmovwb(const Operand& op, const Xmm& x) { opVmov(op, x, T_N8 | T_N_VL | T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x30, true); }
1856void vpmullq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x40); }
1857void vpmultishiftqb(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x83); }
1858void vpopcntb(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x54); }
1859void vpopcntd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x55); }
1860void vpopcntq(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x55); }
1861void vpopcntw(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x54); }
1862void vpord(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0xEB); }
1863void vporq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0xEB); }
1864void vprold(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_X_XM(Xmm(x.getKind(), 1), x, op, T_66 | T_0F | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x72, imm); }
1865void vprolq(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_X_XM(Xmm(x.getKind(), 1), x, op, T_66 | T_0F | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x72, imm); }
1866void vprolvd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x15); }
1867void vprolvq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x15); }
1868void vprord(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_X_XM(Xmm(x.getKind(), 0), x, op, T_66 | T_0F | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x72, imm); }
1869void vprorq(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_X_XM(Xmm(x.getKind(), 0), x, op, T_66 | T_0F | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x72, imm); }
1870void vprorvd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x14); }
1871void vprorvq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x14); }
1872void vpscatterdd(const Address& addr, const Xmm& x) { opGather2(x, addr, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0xA0, 0); }
1873void vpscatterdq(const Address& addr, const Xmm& x) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_M_K, 0xA0, 1); }
1874void vpscatterqd(const Address& addr, const Xmm& x) { opGather2(x, addr, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0xA1, 2); }
1875void vpscatterqq(const Address& addr, const Xmm& x) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_M_K, 0xA1, 0); }
1876void vpshldd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x71, imm); }
1877void vpshldq(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x71, imm); }
1878void vpshldvd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x71); }
1879void vpshldvq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x71); }
1880void vpshldvw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x70); }
1881void vpshldw(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x70, imm); }
1882void vpshrdd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x73, imm); }
1883void vpshrdq(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x73, imm); }
1884void vpshrdvd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x73); }
1885void vpshrdvq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x73); }
1886void vpshrdvw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x72); }
1887void vpshrdw(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX, 0x72, imm); }
1888void vpshufbitqmb(const Opmask& k, const Xmm& x, const Operand& op) { opVex(k, &x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x8F); }
1889void vpsllvw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x12); }
1890void vpsraq(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_X_XM(Xmm(x.getKind(), 4), x, op, T_66 | T_0F | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x72, imm); }
1891void vpsraq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N16 | T_66 | T_0F | T_EW1 | T_YMM | T_MUST_EVEX, 0xE2); }
1892void vpsravq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x46); }
1893void vpsravw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x11); }
1894void vpsrlvw(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x10); }
1895void vpternlogd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x25, imm); }
1896void vpternlogq(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x25, imm); }
1897void vptestmb(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x26); }
1898void vptestmd(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x27); }
1899void vptestmq(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x27); }
1900void vptestmw(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x26); }
1901void vptestnmb(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x26); }
1902void vptestnmd(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_F3 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x27); }
1903void vptestnmq(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_F3 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x27); }
1904void vptestnmw(const Opmask& k, const Xmm& x, const Operand& op) { opAVX_K_X_XM(k, x, op, T_F3 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x26); }
1905void vpxord(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0xEF); }
1906void vpxorq(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0xEF); }
1907void vrangepd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x50, imm); }
1908void vrangeps(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x50, imm); }
1909void vrangesd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F3A | T_EW1 | T_SAE_X | T_MUST_EVEX, 0x51, imm); }
1910void vrangess(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F3A | T_EW0 | T_SAE_X | T_MUST_EVEX, 0x51, imm); }
1911void vrcp14pd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x4C); }
1912void vrcp14ps(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x4C); }
1913void vrcp14sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_MUST_EVEX, 0x4D); }
1914void vrcp14ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_MUST_EVEX, 0x4D); }
1915void vrcp28pd(const Zmm& z, const Operand& op) { opAVX_X_XM_IMM(z, op, T_66 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1 | T_B64 | T_SAE_Z, 0xCA); }
1916void vrcp28ps(const Zmm& z, const Operand& op) { opAVX_X_XM_IMM(z, op, T_66 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0 | T_B32 | T_SAE_Z, 0xCA); }
1917void vrcp28sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_SAE_X | T_MUST_EVEX, 0xCB); }
1918void vrcp28ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_SAE_X | T_MUST_EVEX, 0xCB); }
1919void vreducepd(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(x, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B64, 0x56, imm); }
1920void vreduceps(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(x, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_SAE_Z | T_MUST_EVEX | T_B32, 0x56, imm); }
1921void vreducesd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F3A | T_EW1 | T_SAE_X | T_MUST_EVEX, 0x57, imm); }
1922void vreducess(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F3A | T_EW0 | T_SAE_X | T_MUST_EVEX, 0x57, imm); }
1923void vrndscalepd(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(x, op, T_66 | T_0F3A | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x09, imm); }
1924void vrndscaleps(const Xmm& x, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(x, op, T_66 | T_0F3A | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x08, imm); }
1925void vrndscalesd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F3A | T_EW1 | T_MUST_EVEX, 0x0B, imm); }
1926void vrndscaless(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F3A | T_EW0 | T_MUST_EVEX, 0x0A, imm); }
1927void vrsqrt14pd(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_B64, 0x4E); }
1928void vrsqrt14ps(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_B32, 0x4E); }
1929void vrsqrt14sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x4F); }
1930void vrsqrt14ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX, 0x4F); }
1931void vrsqrt28pd(const Zmm& z, const Operand& op) { opAVX_X_XM_IMM(z, op, T_66 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW1 | T_B64 | T_SAE_Z, 0xCC); }
1932void vrsqrt28ps(const Zmm& z, const Operand& op) { opAVX_X_XM_IMM(z, op, T_66 | T_0F38 | T_MUST_EVEX | T_YMM | T_EW0 | T_B32 | T_SAE_Z, 0xCC); }
1933void vrsqrt28sd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_SAE_X | T_MUST_EVEX, 0xCD); }
1934void vrsqrt28ss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_SAE_X | T_MUST_EVEX, 0xCD); }
1935void vscalefpd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW1 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B64, 0x2C); }
1936void vscalefps(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_66 | T_0F38 | T_EW0 | T_YMM | T_ER_Z | T_MUST_EVEX | T_B32, 0x2C); }
1937void vscalefsd(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N8 | T_66 | T_0F38 | T_EW1 | T_ER_X | T_MUST_EVEX, 0x2D); }
1938void vscalefss(const Xmm& x1, const Xmm& x2, const Operand& op) { opAVX_X_X_XM(x1, x2, op, T_N4 | T_66 | T_0F38 | T_EW0 | T_ER_X | T_MUST_EVEX, 0x2D); }
1939void vscatterdpd(const Address& addr, const Xmm& x) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_M_K, 0xA2, 1); }
1940void vscatterdps(const Address& addr, const Xmm& x) { opGather2(x, addr, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0xA2, 0); }
1941void vscatterpf0dpd(const Address& addr) { opGatherFetch(addr, zm5, T_66 | T_0F38 | T_EW1 | T_MUST_EVEX | T_N8 | T_M_K, 0xC6, Operand::YMM); }
1942void vscatterpf0dps(const Address& addr) { opGatherFetch(addr, zm5, T_66 | T_0F38 | T_EW0 | T_MUST_EVEX | T_N4 | T_M_K, 0xC6, Operand::ZMM); }
1943void vscatterpf0qpd(const Address& addr) { opGatherFetch(addr, zm5, T_66 | T_0F38 | T_EW1 | T_MUST_EVEX | T_N8 | T_M_K, 0xC7, Operand::ZMM); }
1944void vscatterpf0qps(const Address& addr) { opGatherFetch(addr, zm5, T_66 | T_0F38 | T_EW0 | T_MUST_EVEX | T_N4 | T_M_K, 0xC7, Operand::ZMM); }
1945void vscatterpf1dpd(const Address& addr) { opGatherFetch(addr, zm6, T_66 | T_0F38 | T_EW1 | T_MUST_EVEX | T_N8 | T_M_K, 0xC6, Operand::YMM); }
1946void vscatterpf1dps(const Address& addr) { opGatherFetch(addr, zm6, T_66 | T_0F38 | T_EW0 | T_MUST_EVEX | T_N4 | T_M_K, 0xC6, Operand::ZMM); }
1947void vscatterpf1qpd(const Address& addr) { opGatherFetch(addr, zm6, T_66 | T_0F38 | T_EW1 | T_MUST_EVEX | T_N8 | T_M_K, 0xC7, Operand::ZMM); }
1948void vscatterpf1qps(const Address& addr) { opGatherFetch(addr, zm6, T_66 | T_0F38 | T_EW0 | T_MUST_EVEX | T_N4 | T_M_K, 0xC7, Operand::ZMM); }
1949void vscatterqpd(const Address& addr, const Xmm& x) { opGather2(x, addr, T_N8 | T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX | T_M_K, 0xA3, 0); }
1950void vscatterqps(const Address& addr, const Xmm& x) { opGather2(x, addr, T_N4 | T_66 | T_0F38 | T_EW0 | T_YMM | T_MUST_EVEX | T_M_K, 0xA3, 2); }
1951void vshuff32x4(const Ymm& y1, const Ymm& y2, const Operand& op, uint8 imm) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F3A | T_YMM | T_MUST_EVEX | T_EW0 | T_B32, 0x23, imm); }
1952void vshuff64x2(const Ymm& y1, const Ymm& y2, const Operand& op, uint8 imm) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F3A | T_YMM | T_MUST_EVEX | T_EW1 | T_B64, 0x23, imm); }
1953void vshufi32x4(const Ymm& y1, const Ymm& y2, const Operand& op, uint8 imm) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F3A | T_YMM | T_MUST_EVEX | T_EW0 | T_B32, 0x43, imm); }
1954void vshufi64x2(const Ymm& y1, const Ymm& y2, const Operand& op, uint8 imm) { opAVX_X_X_XM(y1, y2, op, T_66 | T_0F3A | T_YMM | T_MUST_EVEX | T_EW1 | T_B64, 0x43, imm); }
1955#ifdef XBYAK64
1956void kmovq(const Opmask& k, const Reg64& r) { opVex(k, 0, r, T_L0 | T_0F | T_F2 | T_W1, 0x92); }
1957void kmovq(const Reg64& r, const Opmask& k) { opVex(r, 0, k, T_L0 | T_0F | T_F2 | T_W1, 0x93); }
1958void vpbroadcastq(const Xmm& x, const Reg64& r) { opVex(x, 0, r, T_66 | T_0F38 | T_EW1 | T_YMM | T_MUST_EVEX, 0x7C); }
1959#endif
1960#endif
@ T_L1
Definition avx_type.hpp:22
@ T_ER_Z
Definition avx_type.hpp:31
@ T_B32
Definition avx_type.hpp:36
@ T_W0
Definition avx_type.hpp:23
@ T_0F38
Definition avx_type.hpp:19
@ T_YMM
Definition avx_type.hpp:27
@ T_EW0
Definition avx_type.hpp:25
@ T_N2
Definition avx_type.hpp:6
@ T_SAE_Y
Definition avx_type.hpp:33
@ T_MUST_EVEX
Definition avx_type.hpp:35
@ T_0F3A
Definition avx_type.hpp:20
@ T_ER_Y
Definition avx_type.hpp:30
@ T_SAE_Z
Definition avx_type.hpp:34
@ T_N_VL
Definition avx_type.hpp:13
@ T_SAE_X
Definition avx_type.hpp:32
@ T_F2
Definition avx_type.hpp:17
@ T_L0
Definition avx_type.hpp:21
@ T_EVEX
Definition avx_type.hpp:28
@ T_EW1
Definition avx_type.hpp:26
@ T_N32
Definition avx_type.hpp:10
@ T_N16
Definition avx_type.hpp:9
@ T_DUP
Definition avx_type.hpp:14
@ T_N4
Definition avx_type.hpp:7
@ T_66
Definition avx_type.hpp:15
@ T_B64
Definition avx_type.hpp:37
@ T_M_K
Definition avx_type.hpp:38
@ T_F3
Definition avx_type.hpp:16
@ T_N1
Definition avx_type.hpp:5
@ T_0F
Definition avx_type.hpp:18
@ T_N8
Definition avx_type.hpp:8
@ T_W1
Definition avx_type.hpp:24
@ T_ER_X
Definition avx_type.hpp:29
const int NONE
Definition avx_type.hpp:42
const mie::Vuint & r
Definition bn.cpp:28
Operand
Definition calc2.cpp:28
Error
Definition calc.cpp:23
unsigned char uint8
Xbyak::uint32 uint32
Definition quantize.cpp:52
Definition lib.h:4
void vxorpd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vcmpunordsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vdivss(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void kortestw(const Opmask &r1, const Opmask &r2)
void vscatterpf1dps(const Address &addr)
void fcomp()
void vporq(const Xmm &x1, const Xmm &x2, const Operand &op)
void roundpd(const Xmm &xmm, const Operand &op, uint8 imm)
void vpermq(const Ymm &y, const Operand &op, uint8 imm)
void movshdup(const Xmm &xmm, const Operand &op)
void kshiftlq(const Opmask &r1, const Opmask &r2, uint8 imm)
void vbroadcasti64x4(const Zmm &z, const Operand &op)
void unpcklps(const Xmm &xmm, const Operand &op)
void imul(const Operand &op)
void vrcp28sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void shrx(const Reg32e &r1, const Operand &op, const Reg32e &r2)
void vpminsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void aad()
void cwd()
void mul(const Operand &op)
void vcmpnle_uqss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vprolvd(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmovnge(const Reg &reg, const Operand &op)
void movzx(const Reg &reg, const Operand &op)
void fadd(const Address &addr)
void vmovsd(const Address &addr, const Xmm &x)
void lea(const Reg &reg, const Address &addr)
void vpbroadcastmb2q(const Xmm &x, const Opmask &k)
void paddd(const Mmx &mmx, const Operand &op)
void vcmpfalse_osss(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmovnle(const Reg &reg, const Operand &op)
void vfnmsub231ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vorpd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vextractf128(const Operand &op, const Ymm &y, uint8 imm)
void vpminsq(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpdpwssds(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpunpckhqdq(const Xmm &x1, const Xmm &x2, const Operand &op)
void pmovzxbd(const Xmm &xmm, const Operand &op)
void kxorq(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vfmsub213ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmpunordpd(const Xmm &x, const Operand &op)
void vpconflictd(const Xmm &x, const Operand &op)
void std()
void minps(const Xmm &xmm, const Operand &op)
void vrangess(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void kortestd(const Opmask &r1, const Opmask &r2)
void vpmaskmovd(const Address &addr, const Xmm &x1, const Xmm &x2)
void vexp2pd(const Zmm &z, const Operand &op)
void fxch()
void psraw(const Mmx &mmx, const Operand &op)
void knotw(const Opmask &r1, const Opmask &r2)
void pcmpgtq(const Xmm &xmm, const Operand &op)
void pmovsxbd(const Xmm &xmm, const Operand &op)
void vpackssdw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vaesdeclast(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vcmpless(const Xmm &x1, const Xmm &x2, const Operand &op)
void vbroadcastf128(const Ymm &y, const Address &addr)
void vperm2i128(const Ymm &y1, const Ymm &y2, const Operand &op, uint8 imm)
void jae(const Label &label, LabelType type=T_AUTO)
void pmaxsd(const Xmm &xmm, const Operand &op)
void vpminsb(const Xmm &x1, const Xmm &x2, const Operand &op)
void pminsw(const Mmx &mmx, const Operand &op)
void divpd(const Xmm &xmm, const Operand &op)
void vaeskeygenassist(const Xmm &xm, const Operand &op, uint8 imm)
void cmpordpd(const Xmm &x, const Operand &op)
void subpd(const Xmm &xmm, const Operand &op)
void setpo(const Operand &op)
void jcxz(std::string label)
void vscatterdpd(const Address &addr, const Xmm &x)
void pcmpistrm(const Xmm &xmm, const Operand &op, uint8 imm)
void vpcmpistri(const Xmm &xm, const Operand &op, uint8 imm)
void monitor()
void ficom(const Address &addr)
void pmovmskb(const Reg32e &reg, const Mmx &mmx)
void vpblendmd(const Xmm &x1, const Xmm &x2, const Operand &op)
void xor_(const Operand &op, uint32 imm)
void movapd(const Address &addr, const Xmm &xmm)
void ja(const Label &label, LabelType type=T_AUTO)
void emms()
void cmpneqsd(const Xmm &x, const Operand &op)
void xor(const Operand &op1, const Operand &op2)
void movlpd(const Operand &op1, const Operand &op2)
void pclmullqhdq(const Xmm &xmm, const Operand &op)
void vgetmantsd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void kshiftrd(const Opmask &r1, const Opmask &r2, uint8 imm)
void vcvtuqq2ps(const Xmm &x, const Operand &op)
void vcvtsd2usi(const Reg32e &r, const Operand &op)
void vpermps(const Ymm &y1, const Ymm &y2, const Operand &op)
void kandd(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vpmovqb(const Operand &op, const Xmm &x)
void fdivr(const Address &addr)
void vpmovsdb(const Operand &op, const Xmm &x)
void vcvtph2ps(const Xmm &x, const Operand &op)
void psignd(const Mmx &mmx, const Operand &op)
void vcompressb(const Operand &op, const Xmm &x)
void vcmpnlt_uqpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void comisd(const Xmm &xmm, const Operand &op)
void vpermi2d(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpmovqw(const Operand &op, const Xmm &x)
void movlhps(const Xmm &reg1, const Xmm &reg2)
void sha256msg2(const Xmm &xmm, const Operand &op)
void js(const Label &label, LabelType type=T_AUTO)
void vphaddd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vmovntpd(const Address &addr, const Xmm &x)
void shufpd(const Xmm &xmm, const Operand &op, uint8 imm8)
void fyl2xp1()
void cvttsd2si(const Operand &reg, const Operand &op)
void cmpnleps(const Xmm &x, const Operand &op)
void vfmsub213ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void setc(const Operand &op)
void vextractf32x4(const Operand &op, const Ymm &r, uint8 imm)
void vmovups(const Address &addr, const Xmm &xmm)
void vpmaxsw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfnmadd213sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void andnpd(const Xmm &xmm, const Operand &op)
void pmovzxbq(const Xmm &xmm, const Operand &op)
void vcvttps2dq(const Xmm &xm, const Operand &op)
void vfmsub231pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void fisub(const Address &addr)
void hsubpd(const Xmm &xmm, const Operand &op)
void vinsertf64x4(const Zmm &r1, const Zmm &r2, const Operand &op, uint8 imm)
void phaddsw(const Mmx &mmx, const Operand &op)
void cmovs(const Reg &reg, const Operand &op)
void setnge(const Operand &op)
void cmpnlesd(const Xmm &x, const Operand &op)
void vpunpckhdq(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpabsd(const Xmm &xm, const Operand &op)
void vpmovdw(const Operand &op, const Xmm &x)
void vshuff32x4(const Ymm &y1, const Ymm &y2, const Operand &op, uint8 imm)
void vcmpleps(const Xmm &x1, const Xmm &x2, const Operand &op)
void cvtsi2sd(const Operand &reg, const Operand &op)
void fucompp()
void vpshrdvd(const Xmm &x1, const Xmm &x2, const Operand &op)
void rorx(const Reg32e &r, const Operand &op, uint8 imm)
void movdq2q(const Mmx &mmx, const Xmm &xmm)
void cpuid()
void vfnmadd132ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmpunordss(const Xmm &x, const Operand &op)
void cmovng(const Reg &reg, const Operand &op)
void vpmovzxbw(const Xmm &xm, const Operand &op)
void fcmovbe(const Fpu &reg1)
void vcvtuqq2pd(const Xmm &x, const Operand &op)
void vpmovsqw(const Operand &op, const Xmm &x)
void vpbroadcastq(const Xmm &x, const Operand &op)
void movmskpd(const Reg32e &reg, const Xmm &xmm)
void vpmovsxdq(const Xmm &xm, const Operand &op)
void vcmpneq_ossd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpsubd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfnmsub231sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpfalsesd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vmulsd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vphminposuw(const Xmm &xm, const Operand &op)
void vsubps(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void setg(const Operand &op)
void vminsd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void pcmpgtd(const Mmx &mmx, const Operand &op)
void rcl(const Operand &op, const Reg8 &_cl)
void cmovo(const Reg &reg, const Operand &op)
void blendvps(const Xmm &xmm, const Operand &op)
void clflush(const Address &addr)
void vpsravw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpermt2w(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmp(const Operand &op, uint32 imm)
void vfmadd213ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpunord_spd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpermilpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void fsubr(const Address &addr)
void setb(const Operand &op)
void psrad(const Mmx &mmx, const Operand &op)
void vpxord(const Xmm &x1, const Xmm &x2, const Operand &op)
void pminsd(const Xmm &xmm, const Operand &op)
void kunpckdq(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void cvtdq2pd(const Xmm &xmm, const Operand &op)
void kshiftld(const Opmask &r1, const Opmask &r2, uint8 imm)
void vcmpngt_uqps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vp4dpwssd(const Zmm &z1, const Zmm &z2, const Address &addr)
void aesdec(const Xmm &xmm, const Operand &op)
void vcmpnless(const Xmm &x1, const Xmm &x2, const Operand &op)
void pand(const Mmx &mmx, const Operand &op)
void cmovns(const Reg &reg, const Operand &op)
void vunpckhpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void phsubd(const Mmx &mmx, const Operand &op)
void vextracti64x4(const Operand &op, const Zmm &r, uint8 imm)
void vcvtusi2ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpmovm2q(const Xmm &x, const Opmask &k)
void kandq(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vpmovb2m(const Opmask &k, const Xmm &x)
void vcvtqq2pd(const Xmm &x, const Operand &op)
void vpminud(const Xmm &x1, const Xmm &x2, const Operand &op)
void ktestw(const Opmask &r1, const Opmask &r2)
void fsin()
void vpmovsqd(const Operand &op, const Xmm &x)
void vcmpnge_uqss(const Xmm &x1, const Xmm &x2, const Operand &op)
void fimul(const Address &addr)
void pmaddubsw(const Mmx &mmx, const Operand &op)
void pusha()
void vpmovuswb(const Operand &op, const Xmm &x)
void movq2dq(const Xmm &xmm, const Mmx &mmx)
void andn(const Reg32e &r1, const Reg32e &r2, const Operand &op)
void fcmovnb(const Fpu &reg1)
void vbroadcastf32x4(const Ymm &y, const Address &addr)
void vcmpnlepd(const Xmm &x1, const Xmm &x2, const Operand &op)
void pushad()
void setnb(const Operand &op)
void pblendw(const Xmm &xmm, const Operand &op, int imm)
void vpabsq(const Xmm &x, const Operand &op)
void vgetexppd(const Xmm &x, const Operand &op)
void blsi(const Reg32e &r, const Operand &op)
void cmpneqss(const Xmm &x, const Operand &op)
void vaddsd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void jb(const Label &label, LabelType type=T_AUTO)
void vbroadcasti128(const Ymm &y, const Address &addr)
void pabsb(const Mmx &mmx, const Operand &op)
void vcmpnltpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmovno(const Reg &reg, const Operand &op)
void vpdpbusds(const Xmm &x1, const Xmm &x2, const Operand &op)
void unpcklpd(const Xmm &xmm, const Operand &op)
void psubusw(const Mmx &mmx, const Operand &op)
void pclmulhqhdq(const Xmm &xmm, const Operand &op)
void pmovsxbq(const Xmm &xmm, const Operand &op)
void vcmple_oqpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void adc(const Operand &op, uint32 imm)
void setnz(const Operand &op)
void psllq(const Mmx &mmx, const Operand &op)
void vpcompressd(const Operand &op, const Xmm &x)
void vpmaddwd(const Xmm &x1, const Xmm &x2, const Operand &op)
void fld(const Address &addr)
void vpmovdb(const Operand &op, const Xmm &x)
void fst(const Address &addr)
void vminps(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vcmpfalse_ospd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfmsubadd231ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vscatterpf0dps(const Address &addr)
void vpmaxuw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpunord_ssd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vinsertf32x8(const Zmm &r1, const Zmm &r2, const Operand &op, uint8 imm)
void fyl2x()
void pmovsxdq(const Xmm &xmm, const Operand &op)
void vpshuflw(const Xmm &xm, const Operand &op, uint8 imm)
void vsqrtpd(const Xmm &xm, const Operand &op)
void fpatan()
void vblendpd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void haddpd(const Xmm &xmm, const Operand &op)
void paddw(const Mmx &mmx, const Operand &op)
void xlatb()
void setne(const Operand &op)
void kxord(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vcmpeq_usss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpsrld(const Xmm &x, const Operand &op, uint8 imm)
void vrndscalepd(const Xmm &x, const Operand &op, uint8 imm)
void cvttpd2dq(const Xmm &xmm, const Operand &op)
void psubq(const Mmx &mmx, const Operand &op)
void vcmpnle_uqps(const Xmm &x1, const Xmm &x2, const Operand &op)
void pmovzxdq(const Xmm &xmm, const Operand &op)
void cmovnc(const Reg &reg, const Operand &op)
void vcvttpd2qq(const Xmm &x, const Operand &op)
void vcmpord_sss(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmpnlepd(const Xmm &x, const Operand &op)
void vgatherpf1qpd(const Address &addr)
void vmovdqa(const Address &addr, const Xmm &xmm)
void vpcmpgtd(const Xmm &x1, const Xmm &x2, const Operand &op)
void ffree(const Fpu &reg)
void vrcp14ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpdpbusd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpunpcklqdq(const Xmm &x1, const Xmm &x2, const Operand &op)
void popcnt(const Reg &reg, const Operand &op)
void fabs()
void extractps(const Operand &op, const Xmm &xmm, uint8 imm)
void packsswb(const Mmx &mmx, const Operand &op)
void btr(const Operand &op, const Reg &reg)
void xorps(const Xmm &xmm, const Operand &op)
void vpandq(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpandnd(const Xmm &x1, const Xmm &x2, const Operand &op)
void punpckhwd(const Mmx &mmx, const Operand &op)
void vptestmq(const Opmask &k, const Xmm &x, const Operand &op)
void vcvttps2uqq(const Xmm &x, const Operand &op)
void vpshufbitqmb(const Opmask &k, const Xmm &x, const Operand &op)
void vmovntdq(const Address &addr, const Xmm &x)
void divps(const Xmm &xmm, const Operand &op)
void kxorb(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vcmpeqss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmplt_oqps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpextrw(const Operand &op, const Xmm &x, uint8 imm)
void maskmovdqu(const Xmm &reg1, const Xmm &reg2)
void shl(const Operand &op, const Reg8 &_cl)
void fcom()
void vcmpneq_osss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vreducess(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void pmuludq(const Mmx &mmx, const Operand &op)
void kandnq(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vfnmadd231pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcvttss2si(const Reg32 &r, const Operand &op)
void vfmsubadd213ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpmovzxwq(const Xmm &xm, const Operand &op)
void bndmk(const BoundsReg &bnd, const Address &addr)
void vpermd(const Ymm &y1, const Ymm &y2, const Operand &op)
void vpcmpuq(const Opmask &k, const Xmm &x, const Operand &op, uint8 imm)
void vorps(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vpminub(const Xmm &x1, const Xmm &x2, const Operand &op)
void pmovsxwq(const Xmm &xmm, const Operand &op)
void mpsadbw(const Xmm &xmm, const Operand &op, int imm)
void movsb()
void vcmple_oqss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpmovqd(const Operand &op, const Xmm &x)
void vcmpngtps(const Xmm &x1, const Xmm &x2, const Operand &op)
void rcpss(const Xmm &xmm, const Operand &op)
void vpcmpgtq(const Xmm &x1, const Xmm &x2, const Operand &op)
void jne(const Label &label, LabelType type=T_AUTO)
void pshufhw(const Mmx &mmx, const Operand &op, uint8 imm8)
void setnae(const Operand &op)
void fcmovne(const Fpu &reg1)
void vpopcntd(const Xmm &x, const Operand &op)
void psubb(const Mmx &mmx, const Operand &op)
void vfmaddsub231pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vaesdec(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vpsrlvq(const Xmm &x1, const Xmm &x2, const Operand &op)
void jle(const Label &label, LabelType type=T_AUTO)
void jng(const Label &label, LabelType type=T_AUTO)
void vunpcklpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmpordss(const Xmm &x, const Operand &op)
void vplzcntd(const Xmm &x, const Operand &op)
void vgatherpf1dps(const Address &addr)
void setle(const Operand &op)
void kshiftrw(const Opmask &r1, const Opmask &r2, uint8 imm)
void pclmulhqlqdq(const Xmm &xmm, const Operand &op)
void vdbpsadbw(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void minss(const Xmm &xmm, const Operand &op)
void inc(const Operand &op)
void vcmpgt_oqsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpord_spd(const Xmm &x1, const Xmm &x2, const Operand &op)
void sqrtss(const Xmm &xmm, const Operand &op)
void vpmovsxbq(const Xmm &xm, const Operand &op)
void vpaddw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcvtss2sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpcmpeqd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcvtps2dq(const Xmm &xm, const Operand &op)
void vcmpngesd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfmsub231ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void cli()
void vblendps(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vmovq(const Address &addr, const Xmm &x)
void v4fnmaddps(const Zmm &z1, const Zmm &z2, const Address &addr)
void vcmpneq_uspd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vplzcntq(const Xmm &x, const Operand &op)
void pshufw(const Mmx &mmx, const Operand &op, uint8 imm8)
void vzeroall()
void vcmpnlt_uqss(const Xmm &x1, const Xmm &x2, const Operand &op)
void kxnorw(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vpdpwssd(const Xmm &x1, const Xmm &x2, const Operand &op)
void haddps(const Xmm &xmm, const Operand &op)
void vcmpngepd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vshufpd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void f2xm1()
void vcvtsi2sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vinsertf32x4(const Ymm &r1, const Ymm &r2, const Operand &op, uint8 imm)
void vpmovw2m(const Opmask &k, const Xmm &x)
void movsw()
void mulx(const Reg32e &r1, const Reg32e &r2, const Operand &op)
void vcmpunordss(const Xmm &x1, const Xmm &x2, const Operand &op)
void psllw(const Mmx &mmx, const Operand &op)
void pextrd(const Operand &op, const Xmm &xmm, uint8 imm)
void vpmulhuw(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmpunordps(const Xmm &x, const Operand &op)
void aas()
void seta(const Operand &op)
void vcmpneq_oqsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void setnle(const Operand &op)
void vucomisd(const Xmm &xm, const Operand &op)
void cmpps(const Xmm &xmm, const Operand &op, uint8 imm8)
void vrcp14pd(const Xmm &x, const Operand &op)
void vpmovsxbd(const Xmm &xm, const Operand &op)
void vpmaxuq(const Xmm &x1, const Xmm &x2, const Operand &op)
void bextr(const Reg32e &r1, const Operand &op, const Reg32e &r2)
void vprorvq(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpmaxsb(const Xmm &x1, const Xmm &x2, const Operand &op)
void vaesimc(const Xmm &xm, const Operand &op)
void psrlq(const Mmx &mmx, const Operand &op)
void vpshrdvw(const Xmm &x1, const Xmm &x2, const Operand &op)
void xgetbv()
void vpermt2pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void pcmpestrm(const Xmm &xmm, const Operand &op, uint8 imm)
void jno(const Label &label, LabelType type=T_AUTO)
void vpmovusqb(const Operand &op, const Xmm &x)
void vptestmb(const Opmask &k, const Xmm &x, const Operand &op)
void kmovq(const Address &addr, const Opmask &k)
void vbroadcastf32x2(const Ymm &y, const Operand &op)
void cmovnl(const Reg &reg, const Operand &op)
void vcmpordsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcompressw(const Operand &op, const Xmm &x)
void vpsrlvd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vrcp14sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vbroadcasti32x2(const Xmm &x, const Operand &op)
void shr(const Operand &op, const Reg8 &_cl)
void vgatherpf0qpd(const Address &addr)
void vpermt2ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void pminub(const Mmx &mmx, const Operand &op)
void jnbe(const Label &label, LabelType type=T_AUTO)
void punpckhbw(const Mmx &mmx, const Operand &op)
void vpextrd(const Operand &op, const Xmm &x, uint8 imm)
void vcvtps2pd(const Xmm &x, const Operand &op)
void vrcp28ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void punpcklbw(const Mmx &mmx, const Operand &op)
void pabsw(const Mmx &mmx, const Operand &op)
void vfmaddsub213pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void pshufd(const Mmx &mmx, const Operand &op, uint8 imm8)
void sha256msg1(const Xmm &xmm, const Operand &op)
void jnle(const Label &label, LabelType type=T_AUTO)
void cvtdq2ps(const Xmm &xmm, const Operand &op)
void cvtps2pi(const Operand &reg, const Operand &op)
void vmaxps(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vphsubd(const Xmm &x1, const Xmm &x2, const Operand &op)
void bndldx(const BoundsReg &bnd, const Address &addr)
void bsf(const Reg &reg, const Operand &op)
void movntdq(const Address &addr, const Xmm &reg)
void movddup(const Xmm &xmm, const Operand &op)
void movhlps(const Xmm &reg1, const Xmm &reg2)
void kxnorb(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void dpps(const Xmm &xmm, const Operand &op, int imm)
void pcmpeqb(const Mmx &mmx, const Operand &op)
void divss(const Xmm &xmm, const Operand &op)
void blendvpd(const Xmm &xmm, const Operand &op)
void vcmpgeps(const Xmm &x1, const Xmm &x2, const Operand &op)
void psrlw(const Mmx &mmx, const Operand &op)
void vpmultishiftqb(const Xmm &x1, const Xmm &x2, const Operand &op)
void psignw(const Mmx &mmx, const Operand &op)
void pextrw(const Operand &op, const Mmx &xmm, uint8 imm)
void vpaddq(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpfalseps(const Xmm &x1, const Xmm &x2, const Operand &op)
void pclmullqlqdq(const Xmm &xmm, const Operand &op)
void bsr(const Reg &reg, const Operand &op)
void vpcmpw(const Opmask &k, const Xmm &x, const Operand &op, uint8 imm)
void fstcw(const Address &addr)
void punpcklqdq(const Xmm &xmm, const Operand &op)
void vmovhlps(const Xmm &x1, const Xmm &x2, const Operand &op=Operand())
void vmovlps(const Address &addr, const Xmm &x)
void vpsubb(const Xmm &x1, const Xmm &x2, const Operand &op)
void idiv(const Operand &op)
void vldmxcsr(const Address &addr)
void vfmsub132sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpsubusw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vrsqrt14sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpmaxub(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfmsubadd231pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void addpd(const Xmm &xmm, const Operand &op)
void vfpclassps(const Opmask &k, const Operand &op, uint8 imm)
void aeskeygenassist(const Xmm &xmm, const Operand &op, uint8 imm)
void cmpneqpd(const Xmm &x, const Operand &op)
void movdqa(const Address &addr, const Xmm &xmm)
void vcvttpd2udq(const Xmm &x, const Operand &op)
void vgetexpsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vmovhps(const Address &addr, const Xmm &x)
void pmaxsw(const Mmx &mmx, const Operand &op)
void vcmpngeps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpeq_osps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vscalefss(const Xmm &x1, const Xmm &x2, const Operand &op)
void movsldup(const Xmm &xmm, const Operand &op)
void vcvttps2qq(const Xmm &x, const Operand &op)
void vpshldw(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void not_(const Operand &op)
void vextractf64x2(const Operand &op, const Ymm &r, uint8 imm)
void vcmpgtss(const Xmm &x1, const Xmm &x2, const Operand &op)
void fmul(const Address &addr)
void fnop()
void vpopcntq(const Xmm &x, const Operand &op)
void vpsubsw(const Xmm &x1, const Xmm &x2, const Operand &op)
void popa()
void kxnorq(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vpblendvb(const Xmm &x1, const Xmm &x2, const Operand &op, const Xmm &x4)
void sarx(const Reg32e &r1, const Operand &op, const Reg32e &r2)
void cmpltpd(const Xmm &x, const Operand &op)
void vfmsub132pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void pshufb(const Mmx &mmx, const Operand &op)
void ktestd(const Opmask &r1, const Opmask &r2)
void subss(const Xmm &xmm, const Operand &op)
void vaesenclast(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void ftst()
void vscatterqps(const Address &addr, const Xmm &x)
void dec(const Operand &op)
void vfnmsub132pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vbroadcasti64x2(const Ymm &y, const Operand &op)
void jecxz(std::string label)
void vaddpd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void bts(const Operand &op, const Reg &reg)
void vcmpeq_uqps(const Xmm &x1, const Xmm &x2, const Operand &op)
void movsx(const Reg &reg, const Operand &op)
void vfnmadd132pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void ucomiss(const Xmm &xmm, const Operand &op)
void gf2p8mulb(const Xmm &xmm, const Operand &op)
void cmovnbe(const Reg &reg, const Operand &op)
void vcmpneq_oqpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void aam()
void vshufps(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void fldl2t()
void movntdqa(const Xmm &xmm, const Address &addr)
void vcmptruess(const Xmm &x1, const Xmm &x2, const Operand &op)
void vgf2p8mulb(const Xmm &x1, const Xmm &x2, const Operand &op)
void faddp()
void pmulhw(const Mmx &mmx, const Operand &op)
void punpckhdq(const Mmx &mmx, const Operand &op)
void pmulld(const Xmm &xmm, const Operand &op)
void vphaddw(const Xmm &x1, const Xmm &x2, const Operand &op)
void addsubps(const Xmm &xmm, const Operand &op)
void punpcklwd(const Mmx &mmx, const Operand &op)
void cvttpd2pi(const Operand &reg, const Operand &op)
void vpsubq(const Xmm &x1, const Xmm &x2, const Operand &op)
void ktestb(const Opmask &r1, const Opmask &r2)
void vcmpge_oqpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpunordps(const Xmm &x1, const Xmm &x2, const Operand &op)
void prefetchnta(const Address &addr)
void ucomisd(const Xmm &xmm, const Operand &op)
void cvtpi2pd(const Operand &reg, const Operand &op)
void vreducesd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void cvttps2dq(const Xmm &xmm, const Operand &op)
void vptestnmb(const Opmask &k, const Xmm &x, const Operand &op)
void vcmpgt_oqpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfmaddsub132pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void movss(const Address &addr, const Xmm &xmm)
void vmaxsd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vfnmsub132ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void blendps(const Xmm &xmm, const Operand &op, int imm)
void cmpnltsd(const Xmm &x, const Operand &op)
void vbroadcasti32x8(const Zmm &z, const Operand &op)
void vrndscaless(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vcmpeq_uqss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpblendw(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vpmuludq(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmovne(const Reg &reg, const Operand &op)
void vscatterpf0dpd(const Address &addr)
void pmaddwd(const Mmx &mmx, const Operand &op)
void vpshrdq(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vphsubw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpcmpgtw(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmovnb(const Reg &reg, const Operand &op)
void vpexpandw(const Xmm &x, const Operand &op)
void vfnmsub213ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vmovdqu32(const Address &addr, const Xmm &x)
void vpor(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfnmadd231ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpaddsb(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfpclasspd(const Opmask &k, const Operand &op, uint8 imm)
void neg(const Operand &op)
void vunpcklps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpeq_ospd(const Xmm &x1, const Xmm &x2, const Operand &op)
void cvtps2pd(const Xmm &xmm, const Operand &op)
void vfnmsub213ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void kmovb(const Address &addr, const Opmask &k)
void pmaxuw(const Xmm &xmm, const Operand &op)
void roundss(const Xmm &xmm, const Operand &op, int imm)
void fcomip(const Fpu &reg1)
void hsubps(const Xmm &xmm, const Operand &op)
void vpblendmw(const Xmm &x1, const Xmm &x2, const Operand &op)
void andnps(const Xmm &xmm, const Operand &op)
void vrangepd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vpmovsxwd(const Xmm &xm, const Operand &op)
void vcmplesd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcvtpd2qq(const Xmm &x, const Operand &op)
void cmpltps(const Xmm &x, const Operand &op)
void subsd(const Xmm &xmm, const Operand &op)
void vpord(const Xmm &x1, const Xmm &x2, const Operand &op)
void mulpd(const Xmm &xmm, const Operand &op)
void pmovsxbw(const Xmm &xmm, const Operand &op)
void adox(const Reg32e &reg, const Operand &op)
void vbroadcastf64x2(const Ymm &y, const Address &addr)
void vrndscalesd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void minsd(const Xmm &xmm, const Operand &op)
void pxor(const Mmx &mmx, const Operand &op)
void jge(const Label &label, LabelType type=T_AUTO)
void vpsllw(const Xmm &x, const Operand &op, uint8 imm)
void vpternlogd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void prefetcht0(const Address &addr)
void vcmpge_oqss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpltps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpopcntb(const Xmm &x, const Operand &op)
void vfmsub231ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vaddss(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vpcmpistrm(const Xmm &xm, const Operand &op, uint8 imm)
void vcmplt_oqss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vdppd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vfnmadd231sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void aesenclast(const Xmm &xmm, const Operand &op)
void vpbroadcastd(const Xmm &x, const Operand &op)
void vpermb(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpxorq(const Xmm &x1, const Xmm &x2, const Operand &op)
void sqrtpd(const Xmm &xmm, const Operand &op)
void maxss(const Xmm &xmm, const Operand &op)
void fcos()
void vcmpnge_uqpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpneq_oqps(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmovnz(const Reg &reg, const Operand &op)
void vfnmadd132ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void crc32(const Reg32e &reg, const Operand &op)
void addss(const Xmm &xmm, const Operand &op)
void movq(const Address &addr, const Mmx &mmx)
void vcmpgtps(const Xmm &x1, const Xmm &x2, const Operand &op)
void subps(const Xmm &xmm, const Operand &op)
void ror(const Operand &op, const Reg8 &_cl)
void fistp(const Address &addr)
void cvtss2sd(const Xmm &xmm, const Operand &op)
void pext(const Reg32e &r1, const Reg32e &r2, const Operand &op)
void vpmovzxdq(const Xmm &xm, const Operand &op)
void vptestnmw(const Opmask &k, const Xmm &x, const Operand &op)
void setnp(const Operand &op)
void vpscatterqd(const Address &addr, const Xmm &x)
void vpshldd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vpshldvd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vinsertps(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void lfence()
void vcmpeq_usps(const Xmm &x1, const Xmm &x2, const Operand &op)
void jg(const Label &label, LabelType type=T_AUTO)
void pminud(const Xmm &xmm, const Operand &op)
void cmovae(const Reg &reg, const Operand &op)
void vpsadbw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vrsqrt28ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void jpe(const Label &label, LabelType type=T_AUTO)
void cmpordsd(const Xmm &x, const Operand &op)
void vfmsub213pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmovge(const Reg &reg, const Operand &op)
void cvtsi2ss(const Operand &reg, const Operand &op)
void vpshrdvq(const Xmm &x1, const Xmm &x2, const Operand &op)
void pmulhrsw(const Mmx &mmx, const Operand &op)
void vcvtsd2ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void rdseed(const Reg &r)
void popf()
void vfixupimmps(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vfmsub132ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpngt_uqpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void pause()
void vroundss(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void fcmovb(const Fpu &reg1)
void vbroadcastsd(const Ymm &y, const Operand &op)
void vpsrldq(const Xmm &x, const Operand &op, uint8 imm)
void vcmpngtss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpextrb(const Operand &op, const Xmm &x, uint8 imm)
void pmullw(const Mmx &mmx, const Operand &op)
void vfnmsub132sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpcmpub(const Opmask &k, const Xmm &x, const Operand &op, uint8 imm)
void vrsqrt14pd(const Xmm &x, const Operand &op)
void vcmpss(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void cvtsd2si(const Operand &reg, const Operand &op)
void paddb(const Mmx &mmx, const Operand &op)
void pcmpistri(const Xmm &xmm, const Operand &op, uint8 imm)
void div(const Operand &op)
void vgatherpf1dpd(const Address &addr)
void vpermi2q(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmpordps(const Xmm &x, const Operand &op)
void sha1msg2(const Xmm &xmm, const Operand &op)
void fucomi(const Fpu &reg1)
void vpmaxsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcvtsd2si(const Reg32 &r, const Operand &op)
void vcmpngtsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfmsub231sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void movups(const Address &addr, const Xmm &xmm)
const char * getVersionString() const
void vpmovmskb(const Reg32e &r, const Xmm &x)
void cmpless(const Xmm &x, const Operand &op)
void vpmovusdb(const Operand &op, const Xmm &x)
void vpabsw(const Xmm &xm, const Operand &op)
void pslld(const Mmx &mmx, const Operand &op)
void vcmpeq_ossd(const Xmm &x1, const Xmm &x2, const Operand &op)
void xadd(const Operand &op, const Reg &reg)
void pcmpgtw(const Mmx &mmx, const Operand &op)
void vcmpunord_sps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpneq_usps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcvttsd2usi(const Reg32e &r, const Operand &op)
void punpckldq(const Mmx &mmx, const Operand &op)
void vfnmsub231pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void pcmpestri(const Xmm &xmm, const Operand &op, uint8 imm)
void vxorps(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void fisubr(const Address &addr)
void vcmpfalse_osps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vscatterpf1qps(const Address &addr)
void vfmaddsub213ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vaddsubps(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vfmadd132ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vgatherdpd(const Xmm &x1, const Address &addr, const Xmm &x2)
void knotb(const Opmask &r1, const Opmask &r2)
void vcmpeq_ussd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpcmpgtb(const Xmm &x1, const Xmm &x2, const Operand &op)
void vhaddps(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vrangesd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void rcr(const Operand &op, const Reg8 &_cl)
void cmpnltss(const Xmm &x, const Operand &op)
void psubusb(const Mmx &mmx, const Operand &op)
void vfmadd231sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpeqsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpexpandd(const Xmm &x, const Operand &op)
void vpermi2ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void lddqu(const Xmm &xmm, const Address &addr)
void cmpunordsd(const Xmm &x, const Operand &op)
void vfixupimmsd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void ldmxcsr(const Address &addr)
void fiadd(const Address &addr)
void lahf()
void kord(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void cmpeqss(const Xmm &x, const Operand &op)
void vfmaddsub231ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpmadd52luq(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmove(const Reg &reg, const Operand &op)
void vhaddpd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void cmpneqps(const Xmm &x, const Operand &op)
void vfmsub132ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void jl(const Label &label, LabelType type=T_AUTO)
void vcmpneq_usss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vdivpd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vmaxpd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vpandn(const Xmm &x1, const Xmm &x2, const Operand &op)
void fidivr(const Address &addr)
void vscatterpf1qpd(const Address &addr)
void vrndscaleps(const Xmm &x, const Operand &op, uint8 imm)
void pushf()
void fucom()
void vpsrlq(const Xmm &x, const Operand &op, uint8 imm)
void popad()
void unpckhps(const Xmm &xmm, const Operand &op)
void vroundsd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void fprem1()
void vperm2f128(const Ymm &y1, const Ymm &y2, const Operand &op, uint8 imm)
void vpmovzxwd(const Xmm &xm, const Operand &op)
void vfnmadd231ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vprold(const Xmm &x, const Operand &op, uint8 imm)
void setz(const Operand &op)
void vpmovm2b(const Xmm &x, const Opmask &k)
void mulps(const Xmm &xmm, const Operand &op)
void movhpd(const Operand &op1, const Operand &op2)
void pextrb(const Operand &op, const Xmm &xmm, uint8 imm)
void psubsw(const Mmx &mmx, const Operand &op)
void pshuflw(const Mmx &mmx, const Operand &op, uint8 imm8)
void vpsllvd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpabsb(const Xmm &xm, const Operand &op)
void maxpd(const Xmm &xmm, const Operand &op)
void fucomp()
void vcmplt_oqsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpunord_sss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vandnps(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void fldln2()
void jp(const Label &label, LabelType type=T_AUTO)
void kaddw(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vpsubw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpneq_oqss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpavgb(const Xmm &x1, const Xmm &x2, const Operand &op)
void blsr(const Reg32e &r, const Operand &op)
void setnbe(const Operand &op)
void cmpxchg(const Operand &op, const Reg &reg)
void cmpltsd(const Xmm &x, const Operand &op)
void vgatherdps(const Xmm &x1, const Address &addr, const Xmm &x2)
void movdqu(const Address &addr, const Xmm &xmm)
void vcmpneq_osps(const Xmm &x1, const Xmm &x2, const Operand &op)
void and_(const Operand &op, uint32 imm)
void vpshldvw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vscalefsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void movntq(const Address &addr, const Mmx &mmx)
void vptestmw(const Opmask &k, const Xmm &x, const Operand &op)
void unpckhpd(const Xmm &xmm, const Operand &op)
void aesdeclast(const Xmm &xmm, const Operand &op)
void vmpsadbw(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vcompressps(const Operand &op, const Xmm &x)
void cmovle(const Reg &reg, const Operand &op)
void vcvtpd2ps(const Xmm &x, const Operand &op)
void cmpnless(const Xmm &x, const Operand &op)
void por(const Mmx &mmx, const Operand &op)
void stac()
void packssdw(const Mmx &mmx, const Operand &op)
void mulsd(const Xmm &xmm, const Operand &op)
void vscalefpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpmulhrsw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfmadd231pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void gf2p8affineinvqb(const Xmm &xmm, const Operand &op, int imm)
void kandnb(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void cmovnp(const Reg &reg, const Operand &op)
void popfd()
void vpshufhw(const Xmm &xm, const Operand &op, uint8 imm)
void jc(const Label &label, LabelType type=T_AUTO)
void adcx(const Reg32e &reg, const Operand &op)
void vpermi2pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vroundps(const Xmm &xm, const Operand &op, uint8 imm)
void vinsertf64x2(const Ymm &r1, const Ymm &r2, const Operand &op, uint8 imm)
void vextracti64x2(const Operand &op, const Ymm &r, uint8 imm)
void and(const Operand &op1, const Operand &op2)
void das()
void vptestnmq(const Opmask &k, const Xmm &x, const Operand &op)
void vmovmskpd(const Reg &r, const Xmm &x)
void pclmulqdq(const Xmm &xmm, const Operand &op, int imm)
void cvtsd2ss(const Xmm &xmm, const Operand &op)
void kmovw(const Address &addr, const Opmask &k)
void vpaddb(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcvtusi2sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpunordpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpternlogq(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void kmovd(const Address &addr, const Opmask &k)
void vfpclasssd(const Opmask &k, const Operand &op, uint8 imm)
void jnb(const Label &label, LabelType type=T_AUTO)
void vpsubsb(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmovg(const Reg &reg, const Operand &op)
void fscale()
void fdivp()
void vcmpfalse_ossd(const Xmm &x1, const Xmm &x2, const Operand &op)
void sqrtsd(const Xmm &xmm, const Operand &op)
void jns(const Label &label, LabelType type=T_AUTO)
void setns(const Operand &op)
void roundps(const Xmm &xmm, const Operand &op, uint8 imm)
void prefetcht2(const Address &addr)
void vpsrlvw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpaddsw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpcmpud(const Opmask &k, const Xmm &x, const Operand &op, uint8 imm)
void vcvtps2udq(const Xmm &x, const Operand &op)
void vcmpeq_uqsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpblendd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vfmadd132pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfnmsub213pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vinserti64x2(const Ymm &r1, const Ymm &r2, const Operand &op, uint8 imm)
void vmovapd(const Address &addr, const Xmm &xmm)
void cmpss(const Xmm &xmm, const Operand &op, uint8 imm8)
void vcmpnltps(const Xmm &x1, const Xmm &x2, const Operand &op)
void cvtss2si(const Operand &reg, const Operand &op)
void movntps(const Address &addr, const Xmm &xmm)
void vrcp14ps(const Xmm &x, const Operand &op)
void movd(const Address &addr, const Mmx &mmx)
void paddsw(const Mmx &mmx, const Operand &op)
void cmplesd(const Xmm &x, const Operand &op)
void vcmpeq_osss(const Xmm &x1, const Xmm &x2, const Operand &op)
void cvtpd2pi(const Operand &reg, const Operand &op)
void vp4dpwssds(const Zmm &z1, const Zmm &z2, const Address &addr)
void valignd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void fptan()
void vpermt2q(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfnmsub231ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpngess(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpneq_ospd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfnmsub132ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfnmsub213sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpconflictq(const Xmm &x, const Operand &op)
void vrangeps(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void sfence()
void cmovz(const Reg &reg, const Operand &op)
void vfmadd213sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vrsqrtss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpnlesd(const Xmm &x1, const Xmm &x2, const Operand &op)
void movntpd(const Address &addr, const Xmm &reg)
void cvtpd2ps(const Xmm &xmm, const Operand &op)
void fldz()
void cmovpe(const Reg &reg, const Operand &op)
void setp(const Operand &op)
void paddusb(const Mmx &mmx, const Operand &op)
void vcvtps2uqq(const Xmm &x, const Operand &op)
void vreducepd(const Xmm &x, const Operand &op, uint8 imm)
void vcmptrue_ussd(const Xmm &x1, const Xmm &x2, const Operand &op)
void fcmove(const Fpu &reg1)
void vpsrlw(const Xmm &x, const Operand &op, uint8 imm)
void vzeroupper()
void vpmovusqw(const Operand &op, const Xmm &x)
void fcmovnbe(const Fpu &reg1)
void vmulpd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vblendmps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpneqss(const Xmm &x1, const Xmm &x2, const Operand &op)
void kortestq(const Opmask &r1, const Opmask &r2)
void vrcp28ps(const Zmm &z, const Operand &op)
void vcmpnleps(const Xmm &x1, const Xmm &x2, const Operand &op)
void maxps(const Xmm &xmm, const Operand &op)
void vpexpandb(const Xmm &x, const Operand &op)
void vmovshdup(const Xmm &xm, const Operand &op)
void sha1rnds4(const Xmm &xmm, const Operand &op, uint8 imm)
void vcmpnlt_uqps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcvttsd2si(const Reg32 &r, const Operand &op)
void vcmpnlt_uqsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vdpps(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void blsmsk(const Reg32e &r, const Operand &op)
void bt(const Operand &op, const Reg &reg)
void phaddw(const Mmx &mmx, const Operand &op)
void vpsllvw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpshufb(const Xmm &x1, const Xmm &x2, const Operand &op)
void btc(const Operand &op, const Reg &reg)
void setl(const Operand &op)
void vpcmpq(const Opmask &k, const Xmm &x, const Operand &op, uint8 imm)
void vcmpnle_uqsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vmovntps(const Address &addr, const Xmm &x)
void blendpd(const Xmm &xmm, const Operand &op, int imm)
void vhsubpd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void seto(const Operand &op)
void vcmpnle_uqpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void pmovsxwd(const Xmm &xmm, const Operand &op)
void vpinsrb(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vgetexpps(const Xmm &x, const Operand &op)
void cmovl(const Reg &reg, const Operand &op)
void vextractf64x4(const Operand &op, const Zmm &r, uint8 imm)
void vpsignd(const Xmm &x1, const Xmm &x2, const Operand &op)
void divsd(const Xmm &xmm, const Operand &op)
void vpsllq(const Xmm &x, const Operand &op, uint8 imm)
void vptest(const Xmm &xm, const Operand &op)
void vpcmpestrm(const Xmm &xm, const Operand &op, uint8 imm)
void vpgatherqd(const Xmm &x1, const Address &addr, const Xmm &x2)
void vrcpss(const Xmm &x1, const Xmm &x2, const Operand &op)
void pmovzxbw(const Xmm &xmm, const Operand &op)
void fldlg2()
void pcmpeqd(const Mmx &mmx, const Operand &op)
void vmovhpd(const Address &addr, const Xmm &x)
void pmovzxwq(const Xmm &xmm, const Operand &op)
void bndcl(const BoundsReg &bnd, const Operand &op)
void vcmpge_oqsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcvtqq2ps(const Xmm &x, const Operand &op)
void cmpxchg8b(const Address &addr)
void vpbroadcastb(const Xmm &x, const Operand &op)
void vgetexpss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfmadd231ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpfalsess(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcvttps2udq(const Xmm &x, const Operand &op)
void fsubp()
void vscatterpf0qpd(const Address &addr)
void vpermt2d(const Xmm &x1, const Xmm &x2, const Operand &op)
void wait()
void jnae(const Label &label, LabelType type=T_AUTO)
void vcmptruesd(const Xmm &x1, const Xmm &x2, const Operand &op)
void fist(const Address &addr)
void psignb(const Mmx &mmx, const Operand &op)
void fcmovnu(const Fpu &reg1)
void vucomiss(const Xmm &xm, const Operand &op)
void vcvttpd2uqq(const Xmm &x, const Operand &op)
void lzcnt(const Reg &reg, const Operand &op)
void vunpckhps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpmovsxbw(const Xmm &xm, const Operand &op)
void fprem()
void vpavgw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpunpcklwd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vshuff64x2(const Ymm &y1, const Ymm &y2, const Operand &op, uint8 imm)
void vinsertf128(const Ymm &y1, const Ymm &y2, const Operand &op, uint8 imm)
void vinserti64x4(const Zmm &r1, const Zmm &r2, const Operand &op, uint8 imm)
void shrd(const Operand &op, const Reg &reg, const Reg8 &_cl)
void fld1()
void lock()
void orpd(const Xmm &xmm, const Operand &op)
void bswap(const Reg32e &reg)
void vsubpd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void knotd(const Opmask &r1, const Opmask &r2)
void kunpckbw(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vgatherqps(const Xmm &x1, const Address &addr, const Xmm &x2)
void vlddqu(const Xmm &x, const Address &addr)
void fdiv(const Address &addr)
void add(const Operand &op, uint32 imm)
void vfpclassss(const Opmask &k, const Operand &op, uint8 imm)
void vcvttss2usi(const Reg32e &r, const Operand &op)
void vptestnmd(const Opmask &k, const Xmm &x, const Operand &op)
void frndint()
void vmulss(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vcmpgt_oqps(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmplepd(const Xmm &x, const Operand &op)
void movaps(const Address &addr, const Xmm &xmm)
void pminsb(const Xmm &xmm, const Operand &op)
void vpscatterqq(const Address &addr, const Xmm &x)
void vfnmadd213ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vaddps(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vpmovusqd(const Operand &op, const Xmm &x)
void fwait()
void pmaxsb(const Xmm &xmm, const Operand &op)
void cmpsd(const Xmm &xmm, const Operand &op, uint8 imm8)
void vpmovsxwq(const Xmm &xm, const Operand &op)
void vscalefps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpmullq(const Xmm &x1, const Xmm &x2, const Operand &op)
void orps(const Xmm &xmm, const Operand &op)
void vinserti32x4(const Ymm &r1, const Ymm &r2, const Operand &op, uint8 imm)
void sahf()
void cmovnae(const Reg &reg, const Operand &op)
void pmovzxwd(const Xmm &xmm, const Operand &op)
void vpcmpd(const Opmask &k, const Xmm &x, const Operand &op, uint8 imm)
void vfmaddsub132ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void maskmovq(const Mmx &reg1, const Mmx &reg2)
void vprorq(const Xmm &x, const Operand &op, uint8 imm)
void shufps(const Xmm &xmm, const Operand &op, uint8 imm8)
void phsubw(const Mmx &mmx, const Operand &op)
void vpsravq(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpacksswb(const Xmm &x1, const Xmm &x2, const Operand &op)
void rol(const Operand &op, const Reg8 &_cl)
void vcmpsd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vpsllvq(const Xmm &x1, const Xmm &x2, const Operand &op)
void vaesenc(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vscatterpf1dpd(const Address &addr)
void bndcn(const BoundsReg &bnd, const Operand &op)
void vpscatterdq(const Address &addr, const Xmm &x)
void vcmpgess(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpshrdw(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vcvtss2si(const Reg32 &r, const Operand &op)
void vbroadcastss(const Xmm &x, const Operand &op)
void vpermilps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vgetmantps(const Xmm &x, const Operand &op, uint8 imm)
void vgatherpf0dpd(const Address &addr)
void shld(const Operand &op, const Reg &reg, const Reg8 &_cl)
void clc()
void movsd()
void aesenc(const Xmm &xmm, const Operand &op)
void paddsb(const Mmx &mmx, const Operand &op)
void vcvtpd2dq(const Xmm &x, const Operand &op)
void vhsubps(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void insertps(const Xmm &xmm, const Operand &op, uint8 imm)
void vcmppd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vcmpnltss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpgepd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpscatterdd(const Address &addr, const Xmm &x)
void vpcompressq(const Operand &op, const Xmm &x)
void vextractps(const Operand &op, const Xmm &x, uint8 imm)
void prefetcht1(const Address &addr)
void pslldq(const Xmm &xmm, int imm8)
void cmpeqps(const Xmm &x, const Operand &op)
void jnp(const Label &label, LabelType type=T_AUTO)
void vpandnq(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpord_sps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vbroadcastf32x8(const Zmm &y, const Address &addr)
void vrsqrt14ps(const Xmm &x, const Operand &op)
void pminuw(const Xmm &xmm, const Operand &op)
void vsqrtps(const Xmm &xm, const Operand &op)
void vblendmpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpunpckhwd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpshldq(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vpsravd(const Xmm &x1, const Xmm &x2, const Operand &op)
void je(const Label &label, LabelType type=T_AUTO)
void korw(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vrsqrt28ps(const Zmm &z, const Operand &op)
void vmovsldup(const Xmm &xm, const Operand &op)
void mwait()
void vmovdqa64(const Address &addr, const Xmm &x)
void kaddd(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vcmptruepd(const Xmm &x1, const Xmm &x2, const Operand &op)
void fsincos()
void vpcmpeqb(const Xmm &x1, const Xmm &x2, const Operand &op)
void kandw(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void rdtsc()
void vmaskmovdqu(const Xmm &x1, const Xmm &x2)
void vrsqrtps(const Xmm &xm, const Operand &op)
void vphsubsw(const Xmm &x1, const Xmm &x2, const Operand &op)
void pavgw(const Mmx &mmx, const Operand &op)
void jnz(const Label &label, LabelType type=T_AUTO)
void kandnd(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vpslldq(const Xmm &x, const Operand &op, uint8 imm)
void vmovdqu64(const Address &addr, const Xmm &x)
void stmxcsr(const Address &addr)
void fldl2e()
void fninit()
void vcmpltpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void phminposuw(const Xmm &xmm, const Operand &op)
void vcmptrue_usss(const Xmm &x1, const Xmm &x2, const Operand &op)
void aesimc(const Xmm &xmm, const Operand &op)
void v4fmaddps(const Zmm &z1, const Zmm &z2, const Address &addr)
void fchs()
void kxnord(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void cvttss2si(const Operand &reg, const Operand &op)
void vrcp28pd(const Zmm &z, const Operand &op)
void fincstp()
void kshiftlb(const Opmask &r1, const Opmask &r2, uint8 imm)
void sqrtps(const Xmm &xmm, const Operand &op)
void pdep(const Reg32e &r1, const Reg32e &r2, const Operand &op)
void pabsd(const Mmx &mmx, const Operand &op)
void movbe(const Address &addr, const Reg &reg)
void vfmsub213sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void psubw(const Mmx &mmx, const Operand &op)
void vfmadd231ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmpleps(const Xmm &x, const Operand &op)
void vmovupd(const Address &addr, const Xmm &xmm)
void jnc(const Label &label, LabelType type=T_AUTO)
void vcmptrue_uspd(const Xmm &x1, const Xmm &x2, const Operand &op)
void cdq()
void psubd(const Mmx &mmx, const Operand &op)
void pcmpeqq(const Xmm &xmm, const Operand &op)
void vscatterdps(const Address &addr, const Xmm &x)
void prefetchwt1(const Address &addr)
void vgetmantss(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vpexpandq(const Xmm &x, const Operand &op)
void vpunpckldq(const Xmm &x1, const Xmm &x2, const Operand &op)
void addps(const Xmm &xmm, const Operand &op)
void vfmadd213ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpgatherqq(const Xmm &x1, const Address &addr, const Xmm &x2)
void vcvtps2qq(const Xmm &x, const Operand &op)
void cmpnltps(const Xmm &x, const Operand &op)
void vcmpnge_uqps(const Xmm &x1, const Xmm &x2, const Operand &op)
void jpo(const Label &label, LabelType type=T_AUTO)
void vmovlhps(const Xmm &x1, const Xmm &x2, const Operand &op=Operand())
void packuswb(const Mmx &mmx, const Operand &op)
void bndcu(const BoundsReg &bnd, const Operand &op)
void vstmxcsr(const Address &addr)
void vmaskmovpd(const Address &addr, const Xmm &x1, const Xmm &x2)
void vpmovm2d(const Xmm &x, const Opmask &k)
void vcmpeq_uqpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vrsqrt28sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vsqrtsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void pandn(const Mmx &mmx, const Operand &op)
void vexpandpd(const Xmm &x, const Operand &op)
void or(const Operand &op1, const Operand &op2)
void vmaskmovps(const Address &addr, const Xmm &x1, const Xmm &x2)
void fsubrp()
void vpcmpb(const Opmask &k, const Xmm &x, const Operand &op, uint8 imm)
void vmulps(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void sha256rnds2(const Xmm &xmm, const Operand &op)
void rdtscp()
void fdecstp()
void fisttp(const Address &addr)
void vpaddusw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpordpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmovc(const Reg &reg, const Operand &op)
void kshiftrb(const Opmask &r1, const Opmask &r2, uint8 imm)
void vpmadd52huq(const Xmm &x1, const Xmm &x2, const Operand &op)
void movhps(const Operand &op1, const Operand &op2)
void vgetmantpd(const Xmm &x, const Operand &op, uint8 imm)
void vbroadcasti32x4(const Ymm &y, const Operand &op)
void vpsignb(const Xmm &x1, const Xmm &x2, const Operand &op)
void shlx(const Reg32e &r1, const Operand &op, const Reg32e &r2)
void vpmaddubsw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpsraq(const Xmm &x, const Operand &op, uint8 imm)
void kandnw(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void bndstx(const Address &addr, const BoundsReg &bnd)
void vpmovusdw(const Operand &op, const Xmm &x)
void kshiftlw(const Opmask &r1, const Opmask &r2, uint8 imm)
void vcmpnltsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpsraw(const Xmm &x, const Operand &op, uint8 imm)
void vpmulhw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vroundpd(const Xmm &xm, const Operand &op, uint8 imm)
void cmpeqpd(const Xmm &x, const Operand &op)
void movlps(const Operand &op1, const Operand &op2)
void setbe(const Operand &op)
void vprorvd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpsrad(const Xmm &x, const Operand &op, uint8 imm)
void vpbroadcastw(const Xmm &x, const Operand &op)
void vpinsrd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vpackusdw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpunpcklbw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfmsubadd132pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmpeqsd(const Xmm &x, const Operand &op)
void pcmpgtb(const Mmx &mmx, const Operand &op)
void sha1msg1(const Xmm &xmm, const Operand &op)
void vcmpgtsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpermi2w(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpblendmb(const Xmm &x1, const Xmm &x2, const Operand &op)
void not(const Operand &op)
void vexp2ps(const Zmm &z, const Operand &op)
void vpshrdd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void kandb(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void rcpps(const Xmm &xmm, const Operand &op)
void dppd(const Xmm &xmm, const Operand &op, int imm)
void vmovmskps(const Reg &r, const Xmm &x)
void vpextrq(const Operand &op, const Xmm &x, uint8 imm)
void vpbroadcastmw2d(const Xmm &x, const Opmask &k)
void vmovntdqa(const Xmm &x, const Address &addr)
void vpinsrq(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void pinsrd(const Xmm &xmm, const Operand &op, uint8 imm)
void psrldq(const Xmm &xmm, int imm8)
void vfnmadd213pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void comiss(const Xmm &xmm, const Operand &op)
void pinsrb(const Xmm &xmm, const Operand &op, uint8 imm)
void vpgatherdd(const Xmm &x1, const Address &addr, const Xmm &x2)
void cmovp(const Reg &reg, const Operand &op)
void fxam()
void vcvtudq2pd(const Xmm &x, const Operand &op)
void vcmpneqpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vmovdqu8(const Address &addr, const Xmm &x)
void palignr(const Mmx &mmx, const Operand &op, int imm)
void vtestps(const Xmm &xm, const Operand &op)
void vcompresspd(const Operand &op, const Xmm &x)
void vmovaps(const Address &addr, const Xmm &xmm)
void vaddsubpd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vpmovm2w(const Xmm &x, const Opmask &k)
void vgatherqpd(const Xmm &x1, const Address &addr, const Xmm &x2)
void vextracti128(const Operand &op, const Ymm &y, uint8 imm)
void vpaddusb(const Xmm &x1, const Xmm &x2, const Operand &op)
void fsub(const Address &addr)
void cmova(const Reg &reg, const Operand &op)
void vmovddup(const Xmm &xm, const Operand &op)
void sete(const Operand &op)
void fldpi()
void vcmpneqsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void cvttps2pi(const Operand &reg, const Operand &op)
void gf2p8affineqb(const Xmm &xmm, const Operand &op, int imm)
void fstp(const Address &addr)
void vpaddd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpmaskmovq(const Address &addr, const Xmm &x1, const Xmm &x2)
void vpmovzxbq(const Xmm &xm, const Operand &op)
void vcmpneqps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vsubsd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void psrld(const Mmx &mmx, const Operand &op)
void vpcmpeqq(const Xmm &x1, const Xmm &x2, const Operand &op)
void rdmsr()
void vtestpd(const Xmm &xm, const Operand &op)
void phaddd(const Mmx &mmx, const Operand &op)
void vcmpeqps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpminuw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vrsqrt28pd(const Zmm &z, const Operand &op)
void vpermpd(const Ymm &y, const Operand &op, uint8 imm)
void fmulp()
void cmovbe(const Reg &reg, const Operand &op)
void vcmpngt_uqsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfmsubadd213pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void minpd(const Xmm &xmm, const Operand &op)
void paddq(const Mmx &mmx, const Operand &op)
void vpalignr(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vandpd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void phsubsw(const Mmx &mmx, const Operand &op)
void roundsd(const Xmm &xmm, const Operand &op, int imm)
void fcomi(const Fpu &reg1)
void vprolq(const Xmm &x, const Operand &op, uint8 imm)
void vpshldvq(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpneq_ussd(const Xmm &x1, const Xmm &x2, const Operand &op)
void setnl(const Operand &op)
void vcmpeq_uspd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmple_oqps(const Xmm &x1, const Xmm &x2, const Operand &op)
void finit()
void vcmpps(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vpcmpestri(const Xmm &xm, const Operand &op, uint8 imm)
void vcmpordps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpandd(const Xmm &x1, const Xmm &x2, const Operand &op)
void kortestb(const Opmask &r1, const Opmask &r2)
void vpsubusb(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpgt_oqss(const Xmm &x1, const Xmm &x2, const Operand &op)
void rdpmc()
void setno(const Operand &op)
void vcomisd(const Xmm &xm, const Operand &op)
void sti()
void rsqrtss(const Xmm &xmm, const Operand &op)
void cmovna(const Reg &reg, const Operand &op)
void sub(const Operand &op, uint32 imm)
void ud2()
void vmovdqu16(const Address &addr, const Xmm &x)
void vcvtdq2ps(const Xmm &xm, const Operand &op)
void vandps(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vextractf32x8(const Operand &op, const Zmm &r, uint8 imm)
void jz(const Label &label, LabelType type=T_AUTO)
void fcmovu(const Fpu &reg1)
void vpmaxud(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcvttpd2dq(const Xmm &x, const Operand &op)
void sal(const Operand &op, const Reg8 &_cl)
void vmovdqu(const Address &addr, const Xmm &xmm)
void wbinvd()
void sbb(const Operand &op, uint32 imm)
void vgatherpf1qps(const Address &addr)
void fucomip(const Fpu &reg1)
void vinserti128(const Ymm &y1, const Ymm &y2, const Operand &op, uint8 imm)
void cwde()
void vpmuldq(const Xmm &x1, const Xmm &x2, const Operand &op)
void vmovd(const Operand &op, const Xmm &x)
void daa()
void pmaxub(const Mmx &mmx, const Operand &op)
void jna(const Label &label, LabelType type=T_AUTO)
void vpmovwb(const Operand &op, const Xmm &x)
void vcomiss(const Xmm &xm, const Operand &op)
void vcmpfalsepd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vmovss(const Address &addr, const Xmm &x)
void vandnpd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vpcmpeqw(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpge_oqps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vrsqrt14ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void fild(const Address &addr)
void vcvtudq2ps(const Xmm &x, const Operand &op)
void cbw()
void rdrand(const Reg &r)
void vpmovzxbd(const Xmm &xm, const Operand &op)
void vfmadd213pd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vfmsubadd132ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpmovq2m(const Opmask &k, const Xmm &x)
void vscatterqpd(const Address &addr, const Xmm &x)
void cvtpi2ps(const Operand &reg, const Operand &op)
void vpopcntw(const Xmm &x, const Operand &op)
void maxsd(const Xmm &xmm, const Operand &op)
void aaa()
void cmovb(const Reg &reg, const Operand &op)
void or_(const Operand &op, uint32 imm)
void vcmpord_ssd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vblendvpd(const Xmm &x1, const Xmm &x2, const Operand &op, const Xmm &x4)
void cmppd(const Xmm &xmm, const Operand &op, uint8 imm8)
void vpxor(const Xmm &x1, const Xmm &x2, const Operand &op)
void vphaddsw(const Xmm &x1, const Xmm &x2, const Operand &op)
void andps(const Xmm &xmm, const Operand &op)
void bnd()
void vpminuq(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpblendmq(const Xmm &x1, const Xmm &x2, const Operand &op)
void pinsrw(const Mmx &mmx, const Operand &op, int imm)
void vcmpltss(const Xmm &x1, const Xmm &x2, const Operand &op)
void sha1nexte(const Xmm &xmm, const Operand &op)
void vcmpgesd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpand(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpngt_uqss(const Xmm &x1, const Xmm &x2, const Operand &op)
void fdivrp()
void vcmplt_oqpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vdivsd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vcmpngtpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpclmulqdq(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void v4fnmaddss(const Xmm &x1, const Xmm &x2, const Address &addr)
void setna(const Operand &op)
void vcmpeqpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmpnge_uqsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpgatherdq(const Xmm &x1, const Address &addr, const Xmm &x2)
void vprord(const Xmm &x, const Operand &op, uint8 imm)
void v4fmaddss(const Xmm &x1, const Xmm &x2, const Address &addr)
void vgf2p8affineinvqb(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void jnge(const Label &label, LabelType type=T_AUTO)
void movupd(const Address &addr, const Xmm &xmm)
void vpermw(const Xmm &x1, const Xmm &x2, const Operand &op)
void packusdw(const Xmm &xmm, const Operand &op)
void ficomp(const Address &addr)
void pmuldq(const Xmm &xmm, const Operand &op)
void vpmovsqb(const Operand &op, const Xmm &x)
void pmaxud(const Xmm &xmm, const Operand &op)
void vpinsrw(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vcvtps2ph(const Operand &op, const Xmm &x, uint8 imm)
void vshufi64x2(const Ymm &y1, const Ymm &y2, const Operand &op, uint8 imm)
void pavgb(const Mmx &mmx, const Operand &op)
void cvtps2dq(const Xmm &xmm, const Operand &op)
void pblendvb(const Xmm &xmm, const Operand &op)
void vbroadcastf64x4(const Zmm &y, const Address &addr)
void cmpnltpd(const Xmm &x, const Operand &op)
void cvtpd2dq(const Xmm &xmm, const Operand &op)
void vprolvq(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcmple_oqsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vmaxss(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vpsignw(const Xmm &x1, const Xmm &x2, const Operand &op)
void cmovpo(const Reg &reg, const Operand &op)
void vcvtpd2udq(const Xmm &x, const Operand &op)
void vexpandps(const Xmm &x, const Operand &op)
void kxorw(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vcvtsi2ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void jbe(const Label &label, LabelType type=T_AUTO)
void kaddq(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void bzhi(const Reg32e &r1, const Operand &op, const Reg32e &r2)
void vdivps(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vcmptrue_usps(const Xmm &x1, const Xmm &x2, const Operand &op)
void movnti(const Address &addr, const Reg32e &reg)
void setge(const Operand &op)
void vcmpgtpd(const Xmm &x1, const Xmm &x2, const Operand &op)
void fsqrt()
void punpckhqdq(const Xmm &xmm, const Operand &op)
void vcmplepd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpermi2b(const Xmm &x1, const Xmm &x2, const Operand &op)
void paddusw(const Mmx &mmx, const Operand &op)
void prefetchw(const Address &addr)
void vpshufd(const Xmm &xm, const Operand &op, uint8 imm)
void kshiftrq(const Opmask &r1, const Opmask &r2, uint8 imm)
void addsd(const Xmm &xmm, const Operand &op)
void vminpd(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void cmc()
void mfence()
void vpackuswb(const Xmm &x1, const Xmm &x2, const Operand &op)
void vpcmpuw(const Opmask &k, const Xmm &x, const Operand &op, uint8 imm)
void vpmullw(const Xmm &x1, const Xmm &x2, const Operand &op)
void bndmov(const Address &addr, const BoundsReg &bnd)
void cld()
void vfmadd132sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vreduceps(const Xmm &x, const Operand &op, uint8 imm)
void fldcw(const Address &addr)
void vptestmd(const Opmask &k, const Xmm &x, const Operand &op)
void vminss(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void vfmadd132ss(const Xmm &x1, const Xmm &x2, const Operand &op)
void sar(const Operand &op, const Reg8 &_cl)
void vblendvps(const Xmm &x1, const Xmm &x2, const Operand &op, const Xmm &x4)
void vfixupimmpd(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void vpmovd2m(const Opmask &k, const Xmm &x)
void ptest(const Xmm &xmm, const Operand &op)
void psadbw(const Mmx &mmx, const Operand &op)
void psubsb(const Mmx &mmx, const Operand &op)
void vpminsw(const Xmm &x1, const Xmm &x2, const Operand &op)
void stc()
void kunpckwd(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vfixupimmss(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void xorpd(const Xmm &xmm, const Operand &op)
void vshufi32x4(const Ymm &y1, const Ymm &y2, const Operand &op, uint8 imm)
void vpslld(const Xmm &x, const Operand &op, uint8 imm)
void ktestq(const Opmask &r1, const Opmask &r2)
void vpmulld(const Xmm &x1, const Xmm &x2, const Operand &op)
void vscatterpf0qps(const Address &addr)
void pushfd()
void vfnmadd213ps(const Xmm &x1, const Xmm &x2, const Operand &op)
void rep()
void jo(const Label &label, LabelType type=T_AUTO)
void vcmpltsd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vcvtpd2uqq(const Xmm &x, const Operand &op)
void vrcpps(const Xmm &xm, const Operand &op)
void kaddb(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vcmptrueps(const Xmm &x1, const Xmm &x2, const Operand &op)
void fidiv(const Address &addr)
void setpe(const Operand &op)
void sets(const Operand &op)
void tzcnt(const Reg &reg, const Operand &op)
void wrmsr()
void vfnmadd132sd(const Xmm &x1, const Xmm &x2, const Operand &op)
void vmovlpd(const Address &addr, const Xmm &x)
void valignq(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void korq(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vcvtss2usi(const Reg32e &r, const Operand &op)
void pmulhuw(const Mmx &mmx, const Operand &op)
void korb(const Opmask &r1, const Opmask &r2, const Opmask &r3)
void vextracti32x4(const Operand &op, const Ymm &r, uint8 imm)
void knotq(const Opmask &r1, const Opmask &r2)
void vinserti32x8(const Zmm &r1, const Zmm &r2, const Operand &op, uint8 imm)
void setng(const Operand &op)
void vextracti32x8(const Operand &op, const Zmm &r, uint8 imm)
void vpmaxsq(const Xmm &x1, const Xmm &x2, const Operand &op)
void addsubpd(const Xmm &xmm, const Operand &op)
void vsubss(const Xmm &xmm, const Operand &op1, const Operand &op2=Operand())
void rsqrtps(const Xmm &xmm, const Operand &op)
void vpunpckhbw(const Xmm &x1, const Xmm &x2, const Operand &op)
void fxtract()
void vpmovswb(const Operand &op, const Xmm &x)
void fcompp()
void vgf2p8affineqb(const Xmm &x1, const Xmm &x2, const Operand &op, uint8 imm)
void cmpltss(const Xmm &x, const Operand &op)
void vcvtdq2pd(const Xmm &x, const Operand &op)
void jnl(const Label &label, LabelType type=T_AUTO)
void vmovdqa32(const Address &addr, const Xmm &x)
void vgatherpf0dps(const Address &addr)
void pcmpeqw(const Mmx &mmx, const Operand &op)
void vpmovsdw(const Operand &op, const Xmm &x)
void setnc(const Operand &op)
void movmskps(const Reg32e &reg, const Xmm &xmm)
void vpermt2b(const Xmm &x1, const Xmm &x2, const Operand &op)
void vgatherpf0qps(const Address &addr)
void setae(const Operand &op)
void vcmpordss(const Xmm &x1, const Xmm &x2, const Operand &op)
void vsqrtss(const Xmm &x1, const Xmm &x2, const Operand &op)
void andpd(const Xmm &xmm, const Operand &op)
void mulss(const Xmm &xmm, const Operand &op)
yh_object_type type
Definition yubihsm.h:672
char * label
CK_RV ret