From ef8f88537cf8264ea1b7f079b7cf93f2fda2bbcb Mon Sep 17 00:00:00 2001 From: Jonghyun Park Date: Thu, 18 May 2017 12:30:52 +0900 Subject: [PATCH 25/29] Fix undefined references on SOS (#11701) --- src/vm/i386/excepx86.cpp | 21 +++++++++------------ src/vm/virtualcallstub.cpp | 14 +++++++------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/vm/i386/excepx86.cpp b/src/vm/i386/excepx86.cpp index cf01147..9f19d47 100644 --- a/src/vm/i386/excepx86.cpp +++ b/src/vm/i386/excepx86.cpp @@ -1953,18 +1953,6 @@ LPVOID STDCALL COMPlusEndCatch(LPVOID ebp, DWORD ebx, DWORD edi, DWORD esi, LPVO return esp; } -#endif // !DACCESS_COMPILE - -PTR_CONTEXT GetCONTEXTFromRedirectedStubStackFrame(CONTEXT * pContext) -{ - LIMITED_METHOD_DAC_CONTRACT; - - UINT_PTR stackSlot = pContext->Ebp + REDIRECTSTUB_EBP_OFFSET_CONTEXT; - PTR_PTR_CONTEXT ppContext = dac_cast((TADDR)stackSlot); - return *ppContext; -} - -#if !defined(DACCESS_COMPILE) PEXCEPTION_REGISTRATION_RECORD GetCurrentSEHRecord() { WRAPPER_NO_CONTRACT; @@ -3618,6 +3606,15 @@ EXCEPTION_HANDLER_IMPL(COMPlusFrameHandlerRevCom) #endif // !DACCESS_COMPILE #endif // !WIN64EXCEPTIONS +PTR_CONTEXT GetCONTEXTFromRedirectedStubStackFrame(CONTEXT * pContext) +{ + LIMITED_METHOD_DAC_CONTRACT; + + UINT_PTR stackSlot = pContext->Ebp + REDIRECTSTUB_EBP_OFFSET_CONTEXT; + PTR_PTR_CONTEXT ppContext = dac_cast((TADDR)stackSlot); + return *ppContext; +} + #ifndef DACCESS_COMPILE LONG CLRNoCatchHandler(EXCEPTION_POINTERS* pExceptionInfo, PVOID pv) { diff --git a/src/vm/virtualcallstub.cpp b/src/vm/virtualcallstub.cpp index 01b15c6..e753860 100644 --- a/src/vm/virtualcallstub.cpp +++ b/src/vm/virtualcallstub.cpp @@ -1640,6 +1640,13 @@ void VirtualCallStubManager::BackPatchWorkerStatic(PCODE returnAddress, TADDR si END_ENTRYPOINT_VOIDRET; } +#if defined(_TARGET_X86_) && defined(FEATURE_PAL) +void BackPatchWorkerStaticStub(PCODE returnAddr, TADDR siteAddrForRegisterIndirect) +{ + VirtualCallStubManager::BackPatchWorkerStatic(returnAddr, siteAddrForRegisterIndirect); +} +#endif + PCODE VirtualCallStubManager::ResolveWorker(StubCallSite* pCallSite, OBJECTREF *protectedObj, DispatchToken token, @@ -4047,10 +4054,3 @@ BOOL VirtualCallStubManagerManager::TraceManager( // Forward the call to the appropriate manager. return pMgr->TraceManager(thread, trace, pContext, pRetAddr); } - -#if defined(_TARGET_X86_) && defined(FEATURE_PAL) -void BackPatchWorkerStaticStub(PCODE returnAddr, TADDR siteAddrForRegisterIndirect) -{ - VirtualCallStubManager::BackPatchWorkerStatic(returnAddr, siteAddrForRegisterIndirect); -} -#endif -- 2.7.4