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 },
|
||||
{ 0x0C, "permilps", 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, "cmpps", MM_0F, true, -1, true, true },
|
||||
{ 0xC2, "cmpsd", MM_0F | PP_F2, false, -1, true, true },
|
||||
|
|
|
@ -1472,6 +1472,12 @@ class Test {
|
|||
{ "vpermilpd", true },
|
||||
{ "vpermilps", true },
|
||||
{ "vpshufb", true },
|
||||
|
||||
{ "vpsllvd", true },
|
||||
{ "vpsllvq", true },
|
||||
{ "vpsravd", true },
|
||||
{ "vpsrlvd", true },
|
||||
{ "vpsrlvq", true },
|
||||
};
|
||||
for (size_t i = 0; i < NUM_OF_ARRAY(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 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 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& 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); }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue