From: Mikhail Kurinnoi Date: Mon, 1 Apr 2019 10:59:36 +0000 (+0300) Subject: Fix build with coreclr 3. X-Git-Tag: submit/tizen/20190405.141848^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ad648bcc0d8580488cc7f078e97f7bbcc91a5c7f;p=sdk%2Ftools%2Fcoreprofiler.git Fix build with coreclr 3. --- diff --git a/src/arch/i386/asmhelpers.S b/src/arch/i386/asmhelpers.S index f8248ed..4df069d 100644 --- a/src/arch/i386/asmhelpers.S +++ b/src/arch/i386/asmhelpers.S @@ -10,6 +10,8 @@ NESTED_ENTRY EnterNaked3, _TEXT, NoHandler PROLOG_PUSH ebx PROLOG_PUSH ecx PROLOG_PUSH edx + sub esp,12 + fstp QWORD PTR [esp] PROLOG_END mov ebx, [ebp+0x8] @@ -17,12 +19,14 @@ NESTED_ENTRY EnterNaked3, _TEXT, NoHandler 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 // @@ -34,6 +38,8 @@ NESTED_ENTRY LeaveNaked3, _TEXT, NoHandler PROLOG_PUSH ebx PROLOG_PUSH ecx PROLOG_PUSH edx + sub esp,12 + fstp QWORD PTR [esp] PROLOG_END mov ebx, [ebp+0x8] @@ -41,12 +47,14 @@ NESTED_ENTRY LeaveNaked3, _TEXT, NoHandler 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 // @@ -58,6 +66,8 @@ NESTED_ENTRY TailcallNaked3, _TEXT, NoHandler PROLOG_PUSH ebx PROLOG_PUSH ecx PROLOG_PUSH edx + sub esp,12 + fstp QWORD PTR [esp] PROLOG_END mov ebx, [ebp+0x8] @@ -65,10 +75,12 @@ NESTED_ENTRY TailcallNaked3, _TEXT, NoHandler 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 diff --git a/src/trace/executiontrace.cpp b/src/trace/executiontrace.cpp index 8d3ad9a..9cef883 100644 --- a/src/trace/executiontrace.cpp +++ b/src/trace/executiontrace.cpp @@ -30,14 +30,15 @@ EXTERN_C UINT_PTR __stdcall FunctionIDMapStub( 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; @@ -51,6 +52,7 @@ EXTERN_C void __stdcall EnterStub(FunctionIDOrClientID functionIDOrClientID) 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( @@ -58,6 +60,7 @@ EXTERN_C void __stdcall LeaveStub(FunctionIDOrClientID functionIDOrClientID) 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(