|
|
|
@ -38,15 +38,20 @@ namespace vm::handler
|
|
|
|
|
CALL,
|
|
|
|
|
JMP,
|
|
|
|
|
VMEXIT,
|
|
|
|
|
POPVSP,
|
|
|
|
|
POPVSPQ,
|
|
|
|
|
POPVSPDW,
|
|
|
|
|
POPVSPW,
|
|
|
|
|
POPVSPB,
|
|
|
|
|
|
|
|
|
|
READCR3,
|
|
|
|
|
WRITECR3,
|
|
|
|
|
READCR8,
|
|
|
|
|
WRITECR8,
|
|
|
|
|
|
|
|
|
|
PUSHVSP,
|
|
|
|
|
PUSHVSPQ,
|
|
|
|
|
PUSHVSPDW,
|
|
|
|
|
PUSHVSPW,
|
|
|
|
|
PUSHVSPB,
|
|
|
|
|
|
|
|
|
|
SREGQ,
|
|
|
|
|
SREGDW,
|
|
|
|
@ -218,8 +223,9 @@ namespace vm::handler
|
|
|
|
|
extern vm::handler::profile_t shrdq;
|
|
|
|
|
extern vm::handler::profile_t shrddw;
|
|
|
|
|
|
|
|
|
|
extern vm::handler::profile_t pushvsp;
|
|
|
|
|
extern vm::handler::profile_t pushvspq;
|
|
|
|
|
extern vm::handler::profile_t pushvspdw;
|
|
|
|
|
extern vm::handler::profile_t pushvspw;
|
|
|
|
|
|
|
|
|
|
extern vm::handler::profile_t lflagsq;
|
|
|
|
|
extern vm::handler::profile_t call;
|
|
|
|
@ -237,10 +243,11 @@ namespace vm::handler
|
|
|
|
|
extern vm::handler::profile_t divq;
|
|
|
|
|
extern vm::handler::profile_t divdw;
|
|
|
|
|
|
|
|
|
|
extern vm::handler::profile_t idivdw;
|
|
|
|
|
extern vm::handler::profile_t popvspq;
|
|
|
|
|
extern vm::handler::profile_t popvspw;
|
|
|
|
|
|
|
|
|
|
extern vm::handler::profile_t idivdw;
|
|
|
|
|
extern vm::handler::profile_t jmp;
|
|
|
|
|
extern vm::handler::profile_t popvsp;
|
|
|
|
|
extern vm::handler::profile_t rdtsc;
|
|
|
|
|
extern vm::handler::profile_t vmexit;
|
|
|
|
|
|
|
|
|
@ -248,18 +255,13 @@ namespace vm::handler
|
|
|
|
|
/// a vector of pointers to all defined vm handler profiles...
|
|
|
|
|
/// </summary>
|
|
|
|
|
inline std::vector< vm::handler::profile_t * > all = {
|
|
|
|
|
&sregq, &sregdw, &sregw, &sregb, &lregq, &lregdw, &lconstq,
|
|
|
|
|
&lconstbzxw, &lconstbsxdw, &lconstbsxq, &lconstdwsxq, &lconstwsxq, &lconstwsxdw, &lconstdw,
|
|
|
|
|
&lconstw, &addq, &adddw, &addw, &addb, &popvsp,
|
|
|
|
|
|
|
|
|
|
&shlq, &shldw, &shlw, &shlb, &writeq, &writedw, &writew,
|
|
|
|
|
&writeb, &nandq, &nanddw, &nandw, &nandb,
|
|
|
|
|
|
|
|
|
|
&shlddw, &shldq,
|
|
|
|
|
|
|
|
|
|
&shrq, &shrdw, &shrw, &shrb, &shrdq, &shrddw, &readgsq,
|
|
|
|
|
&readq, &readdw, &readw, &readb, &mulq, &muldw, &imulq,
|
|
|
|
|
&imuldw, &pushvsp, &pushvspdw, &readcr8, &readcr3, &writecr3, &divq,
|
|
|
|
|
&divdw, &idivdw, &jmp, &lflagsq, &vmexit, &call, &rdtsc };
|
|
|
|
|
&sregq, &sregdw, &sregw, &sregb, &lregq, &lregdw, &lconstq, &lconstbzxw,
|
|
|
|
|
&lconstbsxdw, &lconstbsxq, &lconstdwsxq, &lconstwsxq, &lconstwsxdw, &lconstdw, &lconstw, &addq,
|
|
|
|
|
&adddw, &addw, &addb, &popvspq, &popvspw, &shlq, &shldw, &shlw,
|
|
|
|
|
&shlb, &writeq, &writedw, &writew, &writeb, &nandq, &nanddw, &nandw,
|
|
|
|
|
&nandb, &shlddw, &shldq, &shrq, &shrdw, &shrw, &shrb, &shrdq,
|
|
|
|
|
&shrddw, &readgsq, &readq, &readdw, &readw, &readb, &mulq, &muldw,
|
|
|
|
|
&imulq, &imuldw, &pushvspq, &pushvspdw, &pushvspw, &readcr8, &readcr3, &writecr3,
|
|
|
|
|
&divq, &divdw, &idivdw, &jmp, &lflagsq, &vmexit, &call, &rdtsc };
|
|
|
|
|
} // namespace profile
|
|
|
|
|
} // namespace vm::handler
|