|
|
|
@ -3379,37 +3379,37 @@ static const struct SSEOpHelper_epp sse_op_table6[256] = {
|
|
|
|
|
SSSE3_OP(psignw),
|
|
|
|
|
SSSE3_OP(psignd),
|
|
|
|
|
SSSE3_OP(pmulhrsw),
|
|
|
|
|
{0},{0},{0},{0}, // filler: 0x0c - 0x0f
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0}, // filler: 0x0c - 0x0f
|
|
|
|
|
SSE41_OP(pblendvb),
|
|
|
|
|
{0},{0},{0}, // filler: 0x11 - 0x13
|
|
|
|
|
{{0},0},{{0},0},{{0},0}, // filler: 0x11 - 0x13
|
|
|
|
|
SSE41_OP(blendvps),
|
|
|
|
|
SSE41_OP(blendvpd),
|
|
|
|
|
{0}, // filler: 0x16
|
|
|
|
|
{{0},0}, // filler: 0x16
|
|
|
|
|
SSE41_OP(ptest),
|
|
|
|
|
{0},{0},{0},{0}, // filler: 0x18 - 0x1b
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0}, // filler: 0x18 - 0x1b
|
|
|
|
|
SSSE3_OP(pabsb),
|
|
|
|
|
SSSE3_OP(pabsw),
|
|
|
|
|
SSSE3_OP(pabsd),
|
|
|
|
|
{0}, // filler: 0x1f
|
|
|
|
|
{{0},0}, // filler: 0x1f
|
|
|
|
|
SSE41_OP(pmovsxbw),
|
|
|
|
|
SSE41_OP(pmovsxbd),
|
|
|
|
|
SSE41_OP(pmovsxbq),
|
|
|
|
|
SSE41_OP(pmovsxwd),
|
|
|
|
|
SSE41_OP(pmovsxwq),
|
|
|
|
|
SSE41_OP(pmovsxdq),
|
|
|
|
|
{0},{0}, // filler: 0x26 - 0x27
|
|
|
|
|
{{0},0},{{0},0}, // filler: 0x26 - 0x27
|
|
|
|
|
SSE41_OP(pmuldq),
|
|
|
|
|
SSE41_OP(pcmpeqq),
|
|
|
|
|
SSE41_SPECIAL, /* movntqda */
|
|
|
|
|
SSE41_OP(packusdw),
|
|
|
|
|
{0},{0},{0},{0}, // filler: 0x2c - 0x2f
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0}, // filler: 0x2c - 0x2f
|
|
|
|
|
SSE41_OP(pmovzxbw),
|
|
|
|
|
SSE41_OP(pmovzxbd),
|
|
|
|
|
SSE41_OP(pmovzxbq),
|
|
|
|
|
SSE41_OP(pmovzxwd),
|
|
|
|
|
SSE41_OP(pmovzxwq),
|
|
|
|
|
SSE41_OP(pmovzxdq),
|
|
|
|
|
{0}, // filler: 0x36
|
|
|
|
|
{{0},0}, // filler: 0x36
|
|
|
|
|
SSE42_OP(pcmpgtq),
|
|
|
|
|
SSE41_OP(pminsb),
|
|
|
|
|
SSE41_OP(pminsd),
|
|
|
|
@ -3422,29 +3422,29 @@ static const struct SSEOpHelper_epp sse_op_table6[256] = {
|
|
|
|
|
SSE41_OP(pmulld),
|
|
|
|
|
SSE41_OP(phminposuw),
|
|
|
|
|
// filler: 0x42 - 0xda
|
|
|
|
|
{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},
|
|
|
|
|
AESNI_OP(aesimc),
|
|
|
|
|
AESNI_OP(aesenc),
|
|
|
|
|
AESNI_OP(aesenclast),
|
|
|
|
|
AESNI_OP(aesdec),
|
|
|
|
|
AESNI_OP(aesdeclast),
|
|
|
|
|
// filler: 0xe0 - 0xff
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const struct SSEOpHelper_eppi sse_op_table7[256] = {
|
|
|
|
|
#ifdef _MSC_VER
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, // filler: 0x00 - 0x07
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, // filler: 0x00 - 0x07
|
|
|
|
|
SSE41_OP(roundps),
|
|
|
|
|
SSE41_OP(roundpd),
|
|
|
|
|
SSE41_OP(roundss),
|
|
|
|
@ -3453,43 +3453,43 @@ static const struct SSEOpHelper_eppi sse_op_table7[256] = {
|
|
|
|
|
SSE41_OP(blendpd),
|
|
|
|
|
SSE41_OP(pblendw),
|
|
|
|
|
SSSE3_OP(palignr),
|
|
|
|
|
{0},{0},{0},{0}, // filler: 0x10 - 0x13
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0}, // filler: 0x10 - 0x13
|
|
|
|
|
SSE41_SPECIAL, /* pextrb */
|
|
|
|
|
SSE41_SPECIAL, /* pextrw */
|
|
|
|
|
SSE41_SPECIAL, /* pextrd/pextrq */
|
|
|
|
|
SSE41_SPECIAL, /* extractps */
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, // filler: 0x18 - 0x1f
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, // filler: 0x18 - 0x1f
|
|
|
|
|
SSE41_SPECIAL, /* pinsrb */
|
|
|
|
|
SSE41_SPECIAL, /* insertps */
|
|
|
|
|
SSE41_SPECIAL, /* pinsrd/pinsrq */
|
|
|
|
|
// filler: 0x23 - 0x3f
|
|
|
|
|
{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
SSE41_OP(dpps),
|
|
|
|
|
SSE41_OP(dppd),
|
|
|
|
|
SSE41_OP(mpsadbw),
|
|
|
|
|
{0}, // filler: 0x43
|
|
|
|
|
{{0},0}, // filler: 0x43
|
|
|
|
|
PCLMULQDQ_OP(pclmulqdq),
|
|
|
|
|
// filler: 0x45 - 0x5f
|
|
|
|
|
{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
SSE42_OP(pcmpestrm),
|
|
|
|
|
SSE42_OP(pcmpestri),
|
|
|
|
|
SSE42_OP(pcmpistrm),
|
|
|
|
|
SSE42_OP(pcmpistri),
|
|
|
|
|
// filler: 0x64 - 0xde
|
|
|
|
|
{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
AESNI_OP(aeskeygenassist),
|
|
|
|
|
// filler: 0xe0 - 0xff
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{0},{0},{0},{0},{0},{0},{0},{0}, {0},{0},{0},{0},{0},{0},{0},{0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0}, {{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},{{0},0},
|
|
|
|
|
#else
|
|
|
|
|
[0x08] = SSE41_OP(roundps),
|
|
|
|
|
[0x09] = SSE41_OP(roundpd),
|
|
|
|
|