PROLOG_PUSH ebx
PROLOG_PUSH ecx
PROLOG_PUSH edx
+ sub esp,12
+ fstp QWORD PTR [esp]
PROLOG_END
mov ebx, [ebp+0x8]
call C_FUNC(EnterStub)
EPILOG_BEG
+ fld QWORD PTR [esp]
+ add esp,12
EPILOG_POP edx
EPILOG_POP ecx
EPILOG_POP ebx
EPILOG_POP eax
EPILOG_END
- ret 4
+ ret
NESTED_END EnterNaked3, _TEXT
//
PROLOG_PUSH ebx
PROLOG_PUSH ecx
PROLOG_PUSH edx
+ sub esp,12
+ fstp QWORD PTR [esp]
PROLOG_END
mov ebx, [ebp+0x8]
call C_FUNC(LeaveStub)
EPILOG_BEG
+ fld QWORD PTR [esp]
+ add esp,12
EPILOG_POP edx
EPILOG_POP ecx
EPILOG_POP ebx
EPILOG_POP eax
EPILOG_END
- ret 4
+ ret
NESTED_END LeaveNaked3, _TEXT
//
PROLOG_PUSH ebx
PROLOG_PUSH ecx
PROLOG_PUSH edx
+ sub esp,12
+ fstp QWORD PTR [esp]
PROLOG_END
mov ebx, [ebp+0x8]
call C_FUNC(TailcallStub)
EPILOG_BEG
+ fld QWORD PTR [esp]
+ add esp,12
EPILOG_POP edx
EPILOG_POP ecx
EPILOG_POP ebx
EPILOG_POP eax
EPILOG_END
- ret 4
+ ret
NESTED_END TailcallNaked3, _TEXT
FunctionIDMap(funcId, pbHookFunction);
}
-EXTERN_C void __stdcall EnterNaked3(FunctionIDOrClientID functionIDOrClientID);
-EXTERN_C void __stdcall LeaveNaked3(FunctionIDOrClientID functionIDOrClientID);
-EXTERN_C void __stdcall TailcallNaked3(FunctionIDOrClientID functionIDOrClientID);
+EXTERN_C void STDMETHODCALLTYPE EnterNaked3(FunctionIDOrClientID functionIDOrClientID);
+EXTERN_C void STDMETHODCALLTYPE LeaveNaked3(FunctionIDOrClientID functionIDOrClientID);
+EXTERN_C void STDMETHODCALLTYPE TailcallNaked3(FunctionIDOrClientID functionIDOrClientID);
#ifdef _TARGET_ARM_
EXTERN_C UINT_PTR getPrevPC();
#endif // _TARGET_ARM_
+// if you change calling conversion here, make sure, that x86 asm are corrected too (EnterNaked3)
EXTERN_C void __stdcall EnterStub(FunctionIDOrClientID functionIDOrClientID)
{
UINT_PTR ip = 0;
funcInfo->executionTrace->Enter(*funcInfo, ip);
}
+// if you change calling conversion here, make sure, that x86 asm are corrected too (LeaveNaked3)
EXTERN_C void __stdcall LeaveStub(FunctionIDOrClientID functionIDOrClientID)
{
FunctionInfo *funcInfo = reinterpret_cast<FunctionInfo*>(
funcInfo->executionTrace->Leave(*funcInfo);
}
+// if you change calling conversion here, make sure, that x86 asm are corrected too (TailcallNaked3)
EXTERN_C void __stdcall TailcallStub(FunctionIDOrClientID functionIDOrClientID)
{
FunctionInfo *funcInfo = reinterpret_cast<FunctionInfo*>(