summaryrefslogtreecommitdiff
path: root/src/inc
diff options
context:
space:
mode:
authorJUNG DONG-HEON <dheon.jung@samsung.com>2020-06-08 10:20:14 +0900
committer이형주/Common Platform Lab(SR)/Staff Engineer/삼성전자 <leee.lee@samsung.com>2020-06-18 07:38:46 +0900
commit7d6fa13ce85654174b882c9e934c000dfd2222fe (patch)
tree46c473fdedd5747c2ad281170c0416407b74a503 /src/inc
parent488be5d790020489f7f4dd7d43680f43b101dbd4 (diff)
downloadcoreclr-7d6fa13ce85654174b882c9e934c000dfd2222fe.tar.gz
coreclr-7d6fa13ce85654174b882c9e934c000dfd2222fe.tar.bz2
coreclr-7d6fa13ce85654174b882c9e934c000dfd2222fe.zip
Implement instantiating and unboxing through portable stublinker code… (#106)
* Implement instantiating and unboxing through portable stublinker code - Handle only the cases with register to register moves - Shares abi processing logic with delegate shuffle thunk creation - Architecture specific logic is relatively simple - Do not permit use of HELPERREG in computed instantiating stubs - Fix GetArgLoc such that it works on all architectures and OS combinations Add a JIT stress test case for testing all of the various combinations - Use the same calling convention test architecture that was used as part of tail call work Rename secure delegates to wrapper delegates - Secure delegates are no longer a feature of the runtime - But the wrapper delegate lives on as a workaround for a weird detail of the ARM32 abi
Diffstat (limited to 'src/inc')
-rw-r--r--src/inc/cordebug.idl4
-rw-r--r--src/inc/corinfo.h6
-rw-r--r--src/inc/daccess.h3
-rw-r--r--src/inc/vptr_list.h4
4 files changed, 6 insertions, 11 deletions
diff --git a/src/inc/cordebug.idl b/src/inc/cordebug.idl
index c0dcb7670b..1e27c197f3 100644
--- a/src/inc/cordebug.idl
+++ b/src/inc/cordebug.idl
@@ -6507,7 +6507,7 @@ interface ICorDebugDelegateObjectValue : IUnknown
* - NULL if the delegate function is a static function or an open delegate
* - HRESULT CORDBG_E_UNSUPPORTED_DELEGATE for curently unsupported delegates.
* In this case, the value of ppObject should not be used. Some of these
- * include: Secure wrappers, Open Virual delegates.
+ * include: Wrapper delegates, Open Virual delegates.
*/
HRESULT GetTarget([out] ICorDebugReferenceValue **ppObject);
@@ -6519,7 +6519,7 @@ interface ICorDebugDelegateObjectValue : IUnknown
* such as generic methods, which won't contain the instantiation.
* - HRESULT CORDBG_E_UNSUPPORTED_DELEGATE for curently unsupported delegates.
* In this case, the value of ppObject should not be used. Some of these
- * include: Secure wrappers, Open Virual delegates.
+ * include: Wrapper delegates, Open Virual delegates.
*/
HRESULT GetFunction([out] ICorDebugFunction **ppFunction);
}
diff --git a/src/inc/corinfo.h b/src/inc/corinfo.h
index 9cc849043e..c3af9f8b78 100644
--- a/src/inc/corinfo.h
+++ b/src/inc/corinfo.h
@@ -1699,7 +1699,7 @@ struct CORINFO_CALL_INFO
CORINFO_CONST_LOOKUP instParamLookup; // Used by Ready-to-Run
- BOOL secureDelegateInvoke;
+ BOOL wrapperDelegateInvoke;
};
//----------------------------------------------------------------------------
@@ -1826,8 +1826,8 @@ struct CORINFO_EE_INFO
unsigned offsetOfDelegateInstance;
unsigned offsetOfDelegateFirstTarget;
- // Secure delegate offsets
- unsigned offsetOfSecureDelegateIndirectCell;
+ // Wrapper delegate offsets
+ unsigned offsetOfWrapperDelegateIndirectCell;
// Remoting offsets
unsigned offsetOfTransparentProxyRP;
diff --git a/src/inc/daccess.h b/src/inc/daccess.h
index e4deab9207..802df17d0b 100644
--- a/src/inc/daccess.h
+++ b/src/inc/daccess.h
@@ -2165,8 +2165,7 @@ public: name(int dummy) : base(dummy) {}
#define VPTR_UNIQUE_BaseDomain (100000)
#define VPTR_UNIQUE_SystemDomain (VPTR_UNIQUE_BaseDomain + 1)
#define VPTR_UNIQUE_ComMethodFrame (VPTR_UNIQUE_SystemDomain + 1)
-#define VPTR_UNIQUE_StubHelperFrame (VPTR_UNIQUE_ComMethodFrame + 1)
-#define VPTR_UNIQUE_RedirectedThreadFrame (VPTR_UNIQUE_StubHelperFrame + 1)
+#define VPTR_UNIQUE_RedirectedThreadFrame (VPTR_UNIQUE_ComMethodFrame + 1)
#define VPTR_UNIQUE_HijackFrame (VPTR_UNIQUE_RedirectedThreadFrame + 1)
#define PTR_TO_TADDR(ptr) ((TADDR)(ptr))
diff --git a/src/inc/vptr_list.h b/src/inc/vptr_list.h
index 566cfa6e72..9d1128e208 100644
--- a/src/inc/vptr_list.h
+++ b/src/inc/vptr_list.h
@@ -77,7 +77,6 @@ VPTR_CLASS(HelperMethodFrame_PROTECTOBJ)
VPTR_CLASS(HijackFrame)
#endif
VPTR_CLASS(InlinedCallFrame)
-VPTR_CLASS(SecureDelegateFrame)
VPTR_CLASS(MulticastFrame)
VPTR_CLASS(PInvokeCalliFrame)
VPTR_CLASS(PrestubMethodFrame)
@@ -92,9 +91,6 @@ VPTR_CLASS(ExternalMethodFrame)
#ifdef FEATURE_READYTORUN
VPTR_CLASS(DynamicHelperFrame)
#endif
-#if !defined(_TARGET_X86_)
-VPTR_CLASS(StubHelperFrame)
-#endif
#if defined(_TARGET_X86_)
VPTR_CLASS(UMThkCallFrame)
#endif