Skip to content

Commit

Permalink
Merge pull request #124 from dyninst/v9.2_patches
Browse files Browse the repository at this point in the history
V9.2 patches
  • Loading branch information
John Detter committed Jul 15, 2016
2 parents 41f7fcc + 97eb582 commit bf6706a
Show file tree
Hide file tree
Showing 7 changed files with 358 additions and 85 deletions.
118 changes: 110 additions & 8 deletions common/h/dyn_regs.h
Original file line number Diff line number Diff line change
Expand Up @@ -265,14 +265,116 @@ namespace Dyninst
DEF_REGISTER(oeax, 0x0 | FULL | MISC | Arch_x86, "x86");
DEF_REGISTER(fsbase, 0x1 | FULL | MISC | Arch_x86, "x86");
DEF_REGISTER(gsbase, 0x2 | FULL | MISC | Arch_x86, "x86");
DEF_REGISTER(xmm0, 0x0 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm1, 0x1 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm2, 0x2 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm3, 0x3 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm4, 0x4 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm5, 0x5 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm6, 0x6 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm7, 0x7 | OCT | XMM | Arch_x86, "x86");

DEF_REGISTER(k0, 0x00 | OCT | KMASK| Arch_x86, "x86");
DEF_REGISTER(k1, 0x01 | OCT | KMASK| Arch_x86, "x86");
DEF_REGISTER(k2, 0x02 | OCT | KMASK| Arch_x86, "x86");
DEF_REGISTER(k3, 0x03 | OCT | KMASK| Arch_x86, "x86");
DEF_REGISTER(k4, 0x04 | OCT | KMASK| Arch_x86, "x86");
DEF_REGISTER(k5, 0x05 | OCT | KMASK| Arch_x86, "x86");
DEF_REGISTER(k6, 0x06 | OCT | KMASK| Arch_x86, "x86");
DEF_REGISTER(k7, 0x07 | OCT | KMASK| Arch_x86, "x86");

DEF_REGISTER(xmm0, 0x00 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm1, 0x01 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm2, 0x02 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm3, 0x03 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm4, 0x04 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm5, 0x05 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm6, 0x06 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm7, 0x07 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm8, 0x08 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm9, 0x09 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm10, 0x0A | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm11, 0x0B | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm12, 0x0C | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm13, 0x0D | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm14, 0x0E | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm15, 0x0F | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm16, 0x10 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm17, 0x11 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm18, 0x12 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm19, 0x13 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm20, 0x14 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm21, 0x15 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm22, 0x16 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm23, 0x17 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm24, 0x18 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm25, 0x19 | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm26, 0x1A | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm27, 0x1B | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm28, 0x1C | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm29, 0x1D | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm30, 0x1E | OCT | XMM | Arch_x86, "x86");
DEF_REGISTER(xmm31, 0x1F | OCT | XMM | Arch_x86, "x86");


DEF_REGISTER(ymm0, 0x00 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm1, 0x01 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm2, 0x02 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm3, 0x03 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm4, 0x04 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm5, 0x05 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm6, 0x06 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm7, 0x07 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm8, 0x08 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm9, 0x09 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm10, 0x0A | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm11, 0x0B | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm12, 0x0C | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm13, 0x0D | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm14, 0x0E | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm15, 0x0F | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm16, 0x10 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm17, 0x11 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm18, 0x12 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm19, 0x13 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm20, 0x14 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm21, 0x15 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm22, 0x16 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm23, 0x17 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm24, 0x18 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm25, 0x19 | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm26, 0x1A | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm27, 0x1B | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm28, 0x1C | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm29, 0x1D | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm30, 0x1E | OCT | YMM | Arch_x86, "x86");
DEF_REGISTER(ymm31, 0x1F | OCT | YMM | Arch_x86, "x86");

DEF_REGISTER(zmm0, 0x00 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm1, 0x01 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm2, 0x02 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm3, 0x03 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm4, 0x04 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm5, 0x05 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm6, 0x06 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm7, 0x07 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm8, 0x08 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm9, 0x09 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm10, 0x0A | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm11, 0x0B | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm12, 0x0C | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm13, 0x0D | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm14, 0x0E | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm15, 0x0F | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm16, 0x10 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm17, 0x11 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm18, 0x12 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm19, 0x13 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm20, 0x14 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm21, 0x15 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm22, 0x16 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm23, 0x17 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm24, 0x18 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm25, 0x19 | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm26, 0x1A | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm27, 0x1B | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm28, 0x1C | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm29, 0x1D | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm30, 0x1E | OCT | ZMM | Arch_x86, "x86");
DEF_REGISTER(zmm31, 0x1F | OCT | ZMM | Arch_x86, "x86");

DEF_REGISTER(mm0, 0x0 | FPDBL | MMX | Arch_x86, "x86");
DEF_REGISTER(mm1, 0x1 | FPDBL | MMX | Arch_x86, "x86");
DEF_REGISTER(mm2, 0x2 | FPDBL | MMX | Arch_x86, "x86");
Expand Down
14 changes: 14 additions & 0 deletions common/h/entryIDs.h
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,20 @@ enum entryID {
e_cvttss2si,
e_cwd,
e_cwde,
e_aesenc,
e_aesenclast,
e_aesdec,
e_aesdeclast,
e_vaesenc,
e_vaesenclast,
e_vaesdec,
e_vaesdeclast,
e_aeskeygenassist,
e_vaeskeygenassist,
e_aesimc,
e_vaesimc,
e_pclmullqlqdq,
e_vpclmullqlqdq,
e_daa,
e_das,
e_dec,
Expand Down
108 changes: 98 additions & 10 deletions common/src/arch-x86.C
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,7 @@ SSEB00 = 0, SSEB01, SSEB02, SSEB03, SSEB04, SSEB05, SSEB06, SSEB07,
SSEBB8, SSEBB9, SSEBBA, SSEBBB, SSEBBC, SSEBBD, SSEBBE, SSEBBF,
SSEBC4, SSEBC6, SSEBC7,
SSEBC8, SSEBCA, SSEBCB, SSEBCC, SSEBCD,
SSEBDB, SSEBDC, SSEBDD, SSEBDE, SSEBDF,
SSEBF0, SSEBF1, SSEBF2, SSEBF5, SSEBF6, SSEBF7
};
/** END_DYNINST_TABLE_DEF */
Expand Down Expand Up @@ -399,6 +400,11 @@ enum { /** AUTOGENERATED */
SSEBCB_66,
SSEBCC_66,
SSEBCD_66,
SSEBDB_66,
SSEBDC_66,
SSEBDD_66,
SSEBDE_66,
SSEBDF_66,
SSEBF2_NO,
SSEBF5_F2, SSEBF5_F3, SSEBF5_NO,
SSEBF6_F2, SSEBF6_F3,
Expand All @@ -417,11 +423,12 @@ SSET00 = 0, SSET01, SSET02, SSET03, SSET04, SSET05, SSET06,
SSET20, SSET21, SSET22, SSET23, SSET25, SSET26, SSET27,
SSET30, SSET31, SSET32, SSET33,
SSET38, SSET39, SSET3A, SSET3B, SSET3E, SSET3F,
SSET40, SSET41, SSET42, SSET46,
SSET40, SSET41, SSET42, SSET44, SSET46,
SSET4A, SSET4B, SSET4C,
SSET50, SSET51, SSET54, SSET55, SSET56, SSET57,
SSET60, SSET61, SSET62, SSET63, SSET66, SSET67,
SSET69,
SSETDF,
SSETF0
};
/** END_DYNINST_TABLE_DEF */
Expand Down Expand Up @@ -469,6 +476,7 @@ enum { /** AUTOGENERATED */
SSET3E_66,
SSET3F_66,
SSET42_66,
SSET44_66,
SSET4A_66,
SSET4B_66,
SSET4C_66,
Expand All @@ -481,6 +489,7 @@ enum { /** AUTOGENERATED */
SSET66_66,
SSET67_66,
SSET69_66,
SSETDF_66,
SSETF0_F2
};
/** END_DYNINST_TABLE_DEF */
Expand Down Expand Up @@ -745,6 +754,13 @@ COMMON_EXPORT dyn_hash_map<entryID, std::string> entryNames_IAPI = map_list_of
(e_addss, "addss")
(e_addsubpd, "addsubpd")
(e_addsubps, "addsubps")
(e_aesenc, "aesenc")
(e_aesenclast, "aesenclast")
(e_aesdec, "aesdec")
(e_aesdeclast, "aesdeclast")
(e_aeskeygenassist, "aeskeygenassist")
(e_aesimc, "aesimc")
(e_pclmullqlqdq, "pclmullqlqdq")
(e_and, "and")
(e_andnpd, "andnpd")
(e_andnps, "andnps")
Expand Down Expand Up @@ -1283,7 +1299,13 @@ COMMON_EXPORT dyn_hash_map<entryID, std::string> entryNames_IAPI = map_list_of
(e_xor, "xor")
(e_xorpd, "xorpd")
(e_xorps, "xorps")

(e_vaesenc, "vaesenc")
(e_vaesenclast, "vaesenclast")
(e_vaesdec, "vaesdec")
(e_vaesdeclast, "vaesdeclast")
(e_vaeskeygenassist, "vaeskeygenassist")
(e_vaesimc, "vaesimc")
(e_vpclmullqlqdq, "vpclmullqlqdq")
(e_vmpsadbw, "vmpsadbw")
(e_vmwrite, "vmwrite")
(e_vmread, "vmread")
Expand Down Expand Up @@ -2923,11 +2945,11 @@ static ia32_entry threeByteMap[256] = {
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_sse_bis, SSEBDB, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_sse_bis, SSEBDC, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_sse_bis, SSEBDD, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_sse_bis, SSEBDE, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_sse_bis, SSEBDF, false, { Zz, Zz, Zz }, 0, 0 },
/* E0 */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
Expand Down Expand Up @@ -3044,7 +3066,7 @@ static ia32_entry threeByteMap2[256] = {
{ e_No_Entry, t_sse_ter, SSET41, true, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_sse_ter, SSET42, true, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_sse_ter, SSET44, true, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_sse_ter, SSET46, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
Expand Down Expand Up @@ -3218,7 +3240,7 @@ static ia32_entry threeByteMap2[256] = {
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_sse_ter, SSETDF, false, { Zz, Zz, Zz }, 0, 0 },
/* E0 */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
Expand Down Expand Up @@ -5522,6 +5544,36 @@ static ia32_entry sseMapBis[][5] = {
{ e_No_Entry, t_sse_bis_mult, SSEBCD_66, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 }
}, { /* SSEBDB */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_aesimc, t_sse_bis_mult, SSEBDB_66, true, { Vps, Wps, Zz }, 0, s1W2R },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
}, { /* SSEBDC */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_aesenc, t_sse_bis_mult, SSEBDC_66, true, { Vps, Wps, Zz }, 0, s1RW2R },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
}, { /* SSEBDD */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_aesenclast, t_sse_bis_mult, SSEBDD_66, true, { Vps, Wps, Zz }, 0, s1RW2R },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
}, { /* SSEBDE */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_aesdec, t_sse_bis_mult, SSEBDE_66, true, { Vps, Wps, Zz }, 0, s1RW2R },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
}, { /* SSEBDF */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_aesdeclast, t_sse_bis_mult, SSEBDF_66, true, { Vps, Wps, Zz }, 0, s1RW2R },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
}, { /* SSEBF0 */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
Expand All @@ -5532,7 +5584,7 @@ static ia32_entry sseMapBis[][5] = {
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_crc32, t_done, 0, true, { Vps, Wps, Zz }, 0, s1RW2R },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 }
}, { /* SSEBF2 */
{ e_No_Entry, t_sse_bis_mult, SSEBF2_NO, false, { Zz, Zz, Zz }, 0, 0 },
Expand Down Expand Up @@ -5750,6 +5802,10 @@ static ia32_entry sseMapTer[][3] =
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_sse_ter_mult, SSET42_66, false, { Zz, Zz, Zz }, 0, 0 },
{ e_mpsadbw, t_done, 0, true, { Vdq, Wdq, Ib }, 0, s1RW2R3R },
}, { /* SSET44 */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_pclmullqlqdq, t_sse_ter_mult, SSET44_66, true, { Vps, Wps, Ib }, 0, s1RW2R3R },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
}, { /* SSET46 */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_vperm2i128, t_done, 0, true, { Vps, Hps, Wps }, 0, s1W2R3R4R },
Expand Down Expand Up @@ -5818,6 +5874,10 @@ static ia32_entry sseMapTer[][3] =
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_sse_ter_mult, SSET69_66, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 }
}, { /* SSETDF */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_aeskeygenassist, t_sse_ter_mult, SSETDF_66, true, { Vps, Wps, Ib }, 0, s1W2R3R },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 }
}, { /* SSETF0 */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
Expand Down Expand Up @@ -7240,6 +7300,26 @@ ia32_entry sseMapBisMult[][3] =
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_vexw, VEXW90, false, { Zz, Zz, Zz }, 0, 0 }
}, { /* SSEBDB_66 */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_vaesimc, t_done, 0, true, { Vps, Wps, Zz }, 0, s1W2R },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
}, { /* SSEBDC_66 */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_vaesenc, t_done, 0, true, { Vps, Hps, Wps }, 0, s1W2R3R },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
}, { /* SSEBDD_66 */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_vaesenclast, t_done, 0, true, { Vps, Hps, Wps }, 0, s1W2R3R },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
}, { /* SSEBDE_66 */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_vaesdec, t_done, 0, true, { Vps, Hps, Wps }, 0, s1W2R3R },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
}, { /* SSEBDF_66 */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_aesdeclast, t_done, 0, true, { Vps, Hps, Wps }, 0, s1R2R3R },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
}, { /* SSEBF2_NO */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_andn, t_done, 0, true, { Vps, Hps, Wps }, 0, s1W2R3R },
Expand Down Expand Up @@ -7445,6 +7525,10 @@ ia32_entry sseMapTerMult[][3] =
{ e_vmpsadbw, t_done, 0, true, { Vps, Hps, Wps }, 0, s1W2R3R4R },
{ e_vdbpsadbw, t_done, 0, true, { Vps, Hps, Wps }, 0, s1W2R3R4R },
{ e_vdbpsadbw, t_done, 0, true, { Vps, Hps, Wps }, 0, s1W2R3R4R }
}, { /* SSET44_66 */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_vpclmullqlqdq, t_done, 0, true, { Vps, Hps, Wps }, 0, s1W2R3R4R },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
}, { /* SSET4A_66 */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_vblendvps, t_done, 0, true, { Vps, Hps, Wps }, 0, s1W2R3R4R },
Expand Down Expand Up @@ -7493,6 +7577,10 @@ ia32_entry sseMapTerMult[][3] =
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_vexw, VEXW95, false, { Zz, Zz, Zz }, 0, 0 },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 }
}, { /* SSETDF_66 */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_vaeskeygenassist, t_done, 0, true, { Vps, Wps, Ib }, 0, s1W2R3R },
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 }
}, { /* SSETF0_F2 */
{ e_No_Entry, t_ill, 0, false, { Zz, Zz, Zz }, 0, 0 },
{ e_rorx, t_done, 0, true, { Gv, Bv, Ib }, 0, s1W2R3R },
Expand Down

0 comments on commit bf6706a

Please sign in to comment.