#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
RETURN;
}
+#ifndef UNIX_X86_ABI
void TailCallFrame::UpdateRegDisplay(const PREGDISPLAY pRD)
{
CONTRACT_VOID
RETURN;
}
+#endif // !UNIX_X86_ABI
#ifdef FEATURE_READYTORUN
void DynamicHelperFrame::UpdateRegDisplay(const PREGDISPLAY pRD)
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);
// 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)
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