add vpsllvd, vpsllvq, vpsravd, vpsrlvd, vpsrlvq
This commit is contained in:
parent
738e9baa40
commit
ca4a542a81
3 changed files with 18 additions and 0 deletions
|
@ -1042,6 +1042,13 @@ void put()
|
||||||
{ 0x44, "pclmulqdq", MM_0F3A | PP_66, false, 0, true, true },
|
{ 0x44, "pclmulqdq", MM_0F3A | PP_66, false, 0, true, true },
|
||||||
{ 0x0C, "permilps", MM_0F38 | PP_66, true, 0, false, false },
|
{ 0x0C, "permilps", MM_0F38 | PP_66, true, 0, false, false },
|
||||||
{ 0x0D, "permilpd", MM_0F38 | PP_66, true, 0, false, false },
|
{ 0x0D, "permilpd", MM_0F38 | PP_66, true, 0, false, false },
|
||||||
|
|
||||||
|
{ 0x47, "psllvd", MM_0F38 | PP_66, true, 0, false, false },
|
||||||
|
{ 0x47, "psllvq", MM_0F38 | PP_66, true, 1, false, false },
|
||||||
|
{ 0x46, "psravd", MM_0F38 | PP_66, true, 0, false, false },
|
||||||
|
{ 0x45, "psrlvd", MM_0F38 | PP_66, true, 0, false, false },
|
||||||
|
{ 0x45, "psrlvq", MM_0F38 | PP_66, true, 1, false, false },
|
||||||
|
|
||||||
{ 0xC2, "cmppd", MM_0F | PP_66, true, -1, true, true },
|
{ 0xC2, "cmppd", MM_0F | PP_66, true, -1, true, true },
|
||||||
{ 0xC2, "cmpps", MM_0F, true, -1, true, true },
|
{ 0xC2, "cmpps", MM_0F, true, -1, true, true },
|
||||||
{ 0xC2, "cmpsd", MM_0F | PP_F2, false, -1, true, true },
|
{ 0xC2, "cmpsd", MM_0F | PP_F2, false, -1, true, true },
|
||||||
|
|
|
@ -1472,6 +1472,12 @@ class Test {
|
||||||
{ "vpermilpd", true },
|
{ "vpermilpd", true },
|
||||||
{ "vpermilps", true },
|
{ "vpermilps", true },
|
||||||
{ "vpshufb", true },
|
{ "vpshufb", true },
|
||||||
|
|
||||||
|
{ "vpsllvd", true },
|
||||||
|
{ "vpsllvq", true },
|
||||||
|
{ "vpsravd", true },
|
||||||
|
{ "vpsrlvd", true },
|
||||||
|
{ "vpsrlvq", true },
|
||||||
};
|
};
|
||||||
for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
|
for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
|
||||||
const Tbl *p = &tbl[i];
|
const Tbl *p = &tbl[i];
|
||||||
|
|
|
@ -655,6 +655,11 @@ void vpclmulqdq(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) {
|
||||||
void vpclmulqdq(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F3A | PP_66, 0x44, false, 0); db(imm); }
|
void vpclmulqdq(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F3A | PP_66, 0x44, false, 0); db(imm); }
|
||||||
void vpermilps(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x0C, true, 0); }
|
void vpermilps(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x0C, true, 0); }
|
||||||
void vpermilpd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x0D, true, 0); }
|
void vpermilpd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x0D, true, 0); }
|
||||||
|
void vpsllvd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x47, true, 0); }
|
||||||
|
void vpsllvq(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x47, true, 1); }
|
||||||
|
void vpsravd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x46, true, 0); }
|
||||||
|
void vpsrlvd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x45, true, 0); }
|
||||||
|
void vpsrlvq(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x45, true, 1); }
|
||||||
void vcmppd(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xC2, true, -1); db(imm); }
|
void vcmppd(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xC2, true, -1); db(imm); }
|
||||||
void vcmppd(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xC2, true, -1); db(imm); }
|
void vcmppd(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xC2, true, -1); db(imm); }
|
||||||
void vcmpps(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F, 0xC2, true, -1); db(imm); }
|
void vcmpps(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F, 0xC2, true, -1); db(imm); }
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue