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