|
|
|
@ -20,15 +20,23 @@ namespace vm::handler
|
|
|
|
|
VMEXIT,
|
|
|
|
|
POPVSP,
|
|
|
|
|
|
|
|
|
|
READCR3,
|
|
|
|
|
WRITECR3,
|
|
|
|
|
READCR8,
|
|
|
|
|
WRITECR8,
|
|
|
|
|
|
|
|
|
|
PUSHVSP,
|
|
|
|
|
PUSHVSPDW,
|
|
|
|
|
|
|
|
|
|
SREGQ,
|
|
|
|
|
SREGDW,
|
|
|
|
|
SREGW,
|
|
|
|
|
SREGB,
|
|
|
|
|
|
|
|
|
|
LREGQ,
|
|
|
|
|
LREGDW,
|
|
|
|
|
LREGW,
|
|
|
|
|
LREGB,
|
|
|
|
|
|
|
|
|
|
LCONSTQ,
|
|
|
|
|
LCONSTBZXW,
|
|
|
|
@ -47,6 +55,7 @@ namespace vm::handler
|
|
|
|
|
READB,
|
|
|
|
|
|
|
|
|
|
WRITEQ,
|
|
|
|
|
WRITEGSQ,
|
|
|
|
|
WRITEDW,
|
|
|
|
|
WRITEW,
|
|
|
|
|
WRITEB,
|
|
|
|
@ -54,9 +63,12 @@ namespace vm::handler
|
|
|
|
|
ADDQ,
|
|
|
|
|
ADDDW,
|
|
|
|
|
ADDW,
|
|
|
|
|
ADDB,
|
|
|
|
|
|
|
|
|
|
SHLQ,
|
|
|
|
|
SHLDW,
|
|
|
|
|
SHLW,
|
|
|
|
|
SHLB,
|
|
|
|
|
|
|
|
|
|
SHLDQ,
|
|
|
|
|
SHLDDW,
|
|
|
|
@ -64,7 +76,9 @@ namespace vm::handler
|
|
|
|
|
SHLDB,
|
|
|
|
|
|
|
|
|
|
SHRQ,
|
|
|
|
|
SHRDW,
|
|
|
|
|
SHRW,
|
|
|
|
|
SHRB,
|
|
|
|
|
|
|
|
|
|
NANDQ,
|
|
|
|
|
NANDDW,
|
|
|
|
@ -125,6 +139,7 @@ namespace vm::handler
|
|
|
|
|
extern vm::handler::profile_t sregq;
|
|
|
|
|
extern vm::handler::profile_t sregdw;
|
|
|
|
|
extern vm::handler::profile_t sregw;
|
|
|
|
|
extern vm::handler::profile_t sregb;
|
|
|
|
|
|
|
|
|
|
extern vm::handler::profile_t lregq;
|
|
|
|
|
extern vm::handler::profile_t lregdw;
|
|
|
|
@ -143,9 +158,13 @@ namespace vm::handler
|
|
|
|
|
extern vm::handler::profile_t addq;
|
|
|
|
|
extern vm::handler::profile_t adddw;
|
|
|
|
|
extern vm::handler::profile_t addw;
|
|
|
|
|
extern vm::handler::profile_t addb;
|
|
|
|
|
|
|
|
|
|
extern vm::handler::profile_t shlq;
|
|
|
|
|
extern vm::handler::profile_t shldw;
|
|
|
|
|
extern vm::handler::profile_t shlw;
|
|
|
|
|
|
|
|
|
|
extern vm::handler::profile_t shldq;
|
|
|
|
|
extern vm::handler::profile_t shlddw;
|
|
|
|
|
|
|
|
|
|
extern vm::handler::profile_t nandq;
|
|
|
|
@ -164,6 +183,7 @@ namespace vm::handler
|
|
|
|
|
extern vm::handler::profile_t readb;
|
|
|
|
|
|
|
|
|
|
extern vm::handler::profile_t shrq;
|
|
|
|
|
extern vm::handler::profile_t shrdw;
|
|
|
|
|
extern vm::handler::profile_t shrw;
|
|
|
|
|
|
|
|
|
|
extern vm::handler::profile_t pushvsp;
|
|
|
|
@ -181,16 +201,16 @@ 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, &lregq, &lregdw, &lconstq, &lconstbzxw, &lconstbsxdw,
|
|
|
|
|
&lconstbsxq, &lconstdwsxq, &lconstwsxq, &lconstwsxdw, &lconstdw, &lconstw, &addq, &adddw,
|
|
|
|
|
&addw, &popvsp,
|
|
|
|
|
&sregq, &sregdw, &sregw, &sregb, &lregq, &lregdw, &lconstq, &lconstbzxw,
|
|
|
|
|
&lconstbsxdw, &lconstbsxq, &lconstdwsxq, &lconstwsxq, &lconstwsxdw, &lconstdw, &lconstw, &addq,
|
|
|
|
|
&adddw, &addw, &addb, &popvsp,
|
|
|
|
|
|
|
|
|
|
&shlq, &shldw, &writeq, &writedw, &writeb, &nandq, &nanddw, &nandw,
|
|
|
|
|
&nandb,
|
|
|
|
|
&shlq, &shldw, &shlw, &writeq, &writedw, &writeb, &nandq, &nanddw,
|
|
|
|
|
&nandw, &nandb,
|
|
|
|
|
|
|
|
|
|
&shlddw,
|
|
|
|
|
&shlddw, &shldq,
|
|
|
|
|
|
|
|
|
|
&shrq, &shrw, &readgsq, &readq, &readdw, &readw, &readb, &mulq,
|
|
|
|
|
&pushvsp, &pushvspdw, &divq, &jmp, &lflagsq, &vmexit, &call };
|
|
|
|
|
&shrq, &shrdw, &shrw, &readgsq, &readq, &readdw, &readw, &readb,
|
|
|
|
|
&mulq, &pushvsp, &pushvspdw, &divq, &jmp, &lflagsq, &vmexit, &call };
|
|
|
|
|
} // namespace profile
|
|
|
|
|
} // namespace vm::handler
|