Fix Linux x86 build error related to #35552 (#35892)
authorGleb Balykov <g.balykov@samsung.com>
Wed, 6 May 2020 18:35:03 +0000 (21:35 +0300)
committerGitHub <noreply@github.com>
Wed, 6 May 2020 18:35:03 +0000 (11:35 -0700)
src/coreclr/src/vm/i386/asmconstants.h
src/coreclr/src/vm/i386/cgenx86.cpp
src/coreclr/src/vm/i386/jitinterfacex86.cpp
src/coreclr/src/vm/i386/virtualcallstubcpu.hpp

index 33bb341..34e2da5 100644 (file)
@@ -143,8 +143,10 @@ ASMCONSTANTS_C_ASSERT(LazyMachState_captureEip == offsetof(LazyMachState, captur
 #define VASigCookie__StubOffset 4
 ASMCONSTANTS_C_ASSERT(VASigCookie__StubOffset == offsetof(VASigCookie, pNDirectILStub))
 
+#ifndef UNIX_X86_ABI
 #define SIZEOF_TailCallFrame 32
 ASMCONSTANTS_C_ASSERT(SIZEOF_TailCallFrame == sizeof(TailCallFrame))
+#endif // !UNIX_X86_ABI
 
 #define SIZEOF_GSCookie 4
 
index 3563e8e..887b24e 100644 (file)
@@ -838,6 +838,7 @@ void PInvokeCalliFrame::UpdateRegDisplay(const PREGDISPLAY pRD)
     RETURN;
 }
 
+#ifndef UNIX_X86_ABI
 void TailCallFrame::UpdateRegDisplay(const PREGDISPLAY pRD)
 {
     CONTRACT_VOID
@@ -883,6 +884,7 @@ void TailCallFrame::UpdateRegDisplay(const PREGDISPLAY pRD)
 
     RETURN;
 }
+#endif // !UNIX_X86_ABI
 
 #ifdef FEATURE_READYTORUN
 void DynamicHelperFrame::UpdateRegDisplay(const PREGDISPLAY pRD)
index 82b36f5..72c9709 100644 (file)
@@ -135,8 +135,10 @@ HCIMPL1(Object*, AllocObjectWrapper, MethodTable *pMT)
 HCIMPLEND
 
 /*********************************************************************/
+#ifndef UNIX_X86_ABI
 extern "C" void* g_TailCallFrameVptr;
 void* g_TailCallFrameVptr;
+#endif // !UNI_X86_ABI
 
 #ifdef FEATURE_HIJACK
 extern "C" void STDCALL JIT_TailCallHelper(Thread * pThread);
@@ -1085,8 +1087,10 @@ void InitJITHelpers1()
 
     // Leave the patched region writable for StompWriteBarrierEphemeral(), StompWriteBarrierResize()
 
+#ifndef UNIX_X86_ABI
     // Initialize g_TailCallFrameVptr for JIT_TailCall helper
     g_TailCallFrameVptr = (void*)TailCallFrame::GetMethodFrameVPtr();
+#endif // !UNIX_X86_ABI
 }
 #pragma warning (default : 4731)
 
index b8f9e1a..f8e4982 100644 (file)
@@ -696,11 +696,16 @@ extern "C" void STDCALL JIT_TailCallReturnFromVSD();
 PCODE StubCallSite::GetCallerAddress()
 {
     LIMITED_METHOD_CONTRACT;
+
+#ifdef UNIX_X86_ABI
+    return m_returnAddr;
+#else // UNIX_X86_ABI
     if (m_returnAddr != (PCODE)JIT_TailCallReturnFromVSD)
         return m_returnAddr;
 
     // Find the tailcallframe in the frame chain and get the actual caller from the first TailCallFrame
     return TailCallFrame::FindTailCallFrame(GetThread()->GetFrame())->GetCallerAddress();
+#endif // UNIX_X86_ABI
 }
 
 #ifdef STUB_LOGGING