add vpshufd, vpshufhw, vpshuflw, vpshufb

This commit is contained in:
MITSUNARI Shigeo 2013-05-26 21:18:52 +09:00
parent a45bb018ef
commit 603f65e8e8
3 changed files with 12 additions and 12 deletions

View File

@ -1120,7 +1120,7 @@ void put()
{ 0xEB, "por", MM_0F | PP_66, true, -1, false, true },
{ 0xF6, "psadbw", MM_0F | PP_66, true, -1, false, true },
{ 0x00, "pshufb", MM_0F38 | PP_66, false, -1, false, false },
{ 0x00, "pshufb", MM_0F38 | PP_66, true, -1, false, false },
{ 0x08, "psignb", MM_0F38 | PP_66, true, -1, false, true },
{ 0x09, "psignw", MM_0F38 | PP_66, true, -1, false, true },
@ -1239,9 +1239,9 @@ void put()
{ 0x34, "pmovzxwq", MM_0F38 | PP_66, true, -1, false },
{ 0x35, "pmovzxdq", MM_0F38 | PP_66, true, -1, false },
{ 0x70, "pshufd", MM_0F | PP_66, false, -1, true },
{ 0x70, "pshufhw", MM_0F | PP_F3, false, -1, true },
{ 0x70, "pshuflw", MM_0F | PP_F2, false, -1, true },
{ 0x70, "pshufd", MM_0F | PP_66, true, -1, true },
{ 0x70, "pshufhw", MM_0F | PP_F3, true, -1, true },
{ 0x70, "pshuflw", MM_0F | PP_F2, true, -1, true },
{ 0x17, "ptest", MM_0F38 | PP_66, false, -1, false },
{ 0x53, "rcpps", MM_0F, true, -1, false },

View File

@ -1451,9 +1451,9 @@ class Test {
{ "vpermilpd", true },
{ "vpermilps", true },
{ "vaeskeygenassist", false },
{ "vpshufd", false },
{ "vpshufhw", false },
{ "vpshuflw", false },
{ "vpshufd", true },
{ "vpshufhw", true },
{ "vpshuflw", true },
};
for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
const Tbl *p = &tbl[i];
@ -1470,7 +1470,7 @@ class Test {
} tbl[] = {
{ "vpermilpd", true },
{ "vpermilps", true },
{ "vpshufb", false },
{ "vpshufb", true },
};
for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
const Tbl *p = &tbl[i];

View File

@ -775,7 +775,7 @@ void vpor(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1,
void vpor(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xEB, true, -1); }
void vpsadbw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xF6, true, -1); }
void vpsadbw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xF6, true, -1); }
void vpshufb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x00, false, -1); }
void vpshufb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x00, true, -1); }
void vpsignb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x08, true, -1); }
void vpsignb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x08, true, -1); }
void vpsignw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x09, true, -1); }
@ -893,9 +893,9 @@ void vpmovzxbq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F3
void vpmovzxwd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x33, true, -1); }
void vpmovzxwq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x34, true, -1); }
void vpmovzxdq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x35, true, -1); }
void vpshufd(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_66, 0x70, false, -1, imm); }
void vpshufhw(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_F3, 0x70, false, -1, imm); }
void vpshuflw(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_F2, 0x70, false, -1, imm); }
void vpshufd(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_66, 0x70, true, -1, imm); }
void vpshufhw(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_F3, 0x70, true, -1, imm); }
void vpshuflw(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_F2, 0x70, true, -1, imm); }
void vptest(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x17, false, -1); }
void vrcpps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F, 0x53, true, -1); }
void vrsqrtps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F, 0x52, true, -1); }