Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2017-09-21 07:41:50 +0300
committerGitHub <noreply@github.com>2017-09-21 07:41:50 +0300
commitc201f588d1a4b87eaedfa0ce779e0fb4e2ee6135 (patch)
treec09707b1badbb89f002a2d1c5951cfd3cfe8e13e /src/Native
parent47d755d3fc09e19d562826a83da0b35069e61122 (diff)
Cleanup portable PInvokeTransitionFrame - fixes ARM build break (#4584)
Diffstat (limited to 'src/Native')
-rw-r--r--src/Native/Bootstrap/CppCodeGen.h2
-rw-r--r--src/Native/Runtime/StackFrameIterator.cpp3
-rw-r--r--src/Native/Runtime/inc/rhbinder.h2
3 files changed, 3 insertions, 4 deletions
diff --git a/src/Native/Bootstrap/CppCodeGen.h b/src/Native/Bootstrap/CppCodeGen.h
index c1ef78eb3..77eb56963 100644
--- a/src/Native/Bootstrap/CppCodeGen.h
+++ b/src/Native/Bootstrap/CppCodeGen.h
@@ -50,10 +50,8 @@ struct ReversePInvokeFrame
struct PInvokeTransitionFrame
{
void* m_RIP;
- void* m_FramePointer;
void* m_pThread; // unused by stack crawler, this is so GetThread is only called once per method
// can be an invalid pointer in universal transition cases (which never need to call GetThread)
uint32_t m_dwFlags; // PInvokeTransitionFrameFlags
- uint64_t m_PreservedRegs[];
};
#endif
diff --git a/src/Native/Runtime/StackFrameIterator.cpp b/src/Native/Runtime/StackFrameIterator.cpp
index cf1a4230c..7341b3233 100644
--- a/src/Native/Runtime/StackFrameIterator.cpp
+++ b/src/Native/Runtime/StackFrameIterator.cpp
@@ -167,6 +167,7 @@ void StackFrameIterator::InternalInit(Thread * pThreadToWalk, PTR_PInvokeTransit
// properly walk it in parallel.
ResetNextExInfoForSP((UIntNative)dac_cast<TADDR>(pFrame));
+#if !defined(USE_PORTABLE_HELPERS) // @TODO: CORERT: no portable version of regdisplay
memset(&m_RegDisplay, 0, sizeof(m_RegDisplay));
m_RegDisplay.SetIP((PCODE)pFrame->m_RIP);
m_RegDisplay.SetAddrOfIP((PTR_PCODE)PTR_HOST_MEMBER(PInvokeTransitionFrame, pFrame, m_RIP));
@@ -250,6 +251,8 @@ void StackFrameIterator::InternalInit(Thread * pThreadToWalk, PTR_PInvokeTransit
#endif // _TARGET_ARM_
+#endif // defined(USE_PORTABLE_HELPERS)
+
// @TODO: currently, we always save all registers -- how do we handle the onese we don't save once we
// start only saving those that weren't already saved?
diff --git a/src/Native/Runtime/inc/rhbinder.h b/src/Native/Runtime/inc/rhbinder.h
index 19ebe10ce..d612fd8fb 100644
--- a/src/Native/Runtime/inc/rhbinder.h
+++ b/src/Native/Runtime/inc/rhbinder.h
@@ -638,11 +638,9 @@ class Thread;
struct PInvokeTransitionFrame
{
void* m_RIP;
- void* m_FramePointer;
Thread* m_pThread; // unused by stack crawler, this is so GetThread is only called once per method
// can be an invalid pointer in universal transition cases (which never need to call GetThread)
uint32_t m_dwFlags; // PInvokeTransitionFrameFlags
- uint64_t m_PreservedRegs[];
};
#else // USE_PORTABLE_HELPERS && CORERT
struct PInvokeTransitionFrame