mirror of https://github.com/x64dbg/TitanEngine
performance improvement in GetContextDataEx
This commit is contained in:
parent
895f80996b
commit
6dc9dcd3cf
|
|
@ -113,7 +113,7 @@ bool _SetFullContextDataEx(HANDLE hActiveThread, TITAN_ENGINE_CONTEXT_t* titcont
|
||||||
return returnf;
|
return returnf;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool _GetFullContextDataEx(HANDLE hActiveThread, TITAN_ENGINE_CONTEXT_t* titcontext)
|
bool _GetFullContextDataEx(HANDLE hActiveThread, TITAN_ENGINE_CONTEXT_t* titcontext, bool avx)
|
||||||
{
|
{
|
||||||
CONTEXT DBGContext;
|
CONTEXT DBGContext;
|
||||||
memset(&DBGContext, 0, sizeof(CONTEXT));
|
memset(&DBGContext, 0, sizeof(CONTEXT));
|
||||||
|
|
@ -203,6 +203,7 @@ bool _GetFullContextDataEx(HANDLE hActiveThread, TITAN_ENGINE_CONTEXT_t* titcont
|
||||||
memcpy(&(titcontext->XmmRegisters[i]), & DBGContext.ExtendedRegisters[(10 + i) * 16], 16);
|
memcpy(&(titcontext->XmmRegisters[i]), & DBGContext.ExtendedRegisters[(10 + i) * 16], 16);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if(avx)
|
||||||
GetAVXContext(hActiveThread, titcontext);
|
GetAVXContext(hActiveThread, titcontext);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ extern LOCATEXSTATEFEATURE _LocateXStateFeature;
|
||||||
extern SETXSTATEFEATURESMASK _SetXStateFeaturesMask;
|
extern SETXSTATEFEATURESMASK _SetXStateFeaturesMask;
|
||||||
|
|
||||||
bool _SetFullContextDataEx(HANDLE hActiveThread, TITAN_ENGINE_CONTEXT_t* titcontext, bool AVX_PRIORITY);
|
bool _SetFullContextDataEx(HANDLE hActiveThread, TITAN_ENGINE_CONTEXT_t* titcontext, bool AVX_PRIORITY);
|
||||||
bool _GetFullContextDataEx(HANDLE hActiveThread, TITAN_ENGINE_CONTEXT_t* titcontext);
|
bool _GetFullContextDataEx(HANDLE hActiveThread, TITAN_ENGINE_CONTEXT_t* titcontext, bool avx);
|
||||||
bool InitXState(void);
|
bool InitXState(void);
|
||||||
|
|
||||||
#endif //_GLOBAL_ENGINE_CONTEXT_H
|
#endif //_GLOBAL_ENGINE_CONTEXT_H
|
||||||
|
|
@ -85,7 +85,7 @@ __declspec(dllexport) bool TITCALL GetFullContextDataEx(HANDLE hActiveThread, TI
|
||||||
if(SuspendThread(hActiveThread) == (DWORD) - 1)
|
if(SuspendThread(hActiveThread) == (DWORD) - 1)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
returnf = _GetFullContextDataEx(hActiveThread, titcontext);
|
returnf = _GetFullContextDataEx(hActiveThread, titcontext, true);
|
||||||
|
|
||||||
ResumeThread(hActiveThread);
|
ResumeThread(hActiveThread);
|
||||||
|
|
||||||
|
|
@ -102,7 +102,7 @@ __declspec(dllexport) ULONG_PTR TITCALL GetContextDataEx(HANDLE hActiveThread, D
|
||||||
|
|
||||||
memset(&titcontext, 0, sizeof(titcontext));
|
memset(&titcontext, 0, sizeof(titcontext));
|
||||||
|
|
||||||
if(! _GetFullContextDataEx(hActiveThread, & titcontext))
|
if(! _GetFullContextDataEx(hActiveThread, & titcontext, false))
|
||||||
{
|
{
|
||||||
ResumeThread(hActiveThread);
|
ResumeThread(hActiveThread);
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -397,7 +397,7 @@ __declspec(dllexport) bool TITCALL SetContextDataEx(HANDLE hActiveThread, DWORD
|
||||||
|
|
||||||
memset(&titcontext, 0, sizeof(titcontext));
|
memset(&titcontext, 0, sizeof(titcontext));
|
||||||
|
|
||||||
if(! _GetFullContextDataEx(hActiveThread, & titcontext))
|
if(! _GetFullContextDataEx(hActiveThread, & titcontext, IndexOfRegister >= UE_MXCSR))
|
||||||
{
|
{
|
||||||
ResumeThread(hActiveThread);
|
ResumeThread(hActiveThread);
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue