diff options
author | Sergey Andreenko <seandree@microsoft.com> | 2017-06-06 10:19:11 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-06 10:19:11 -0700 |
commit | b23a11e834074e3e030b42fc8d93083e15b7545d (patch) | |
tree | 72a676ddde3c96b9df943a1e3b5df9723b6bcec3 /src/inc | |
parent | b68851126b20e4ad40219760bfe80b73fb6db835 (diff) | |
download | coreclr-b23a11e834074e3e030b42fc8d93083e15b7545d.tar.gz coreclr-b23a11e834074e3e030b42fc8d93083e15b7545d.tar.bz2 coreclr-b23a11e834074e3e030b42fc8d93083e15b7545d.zip |
new JitEE interface method: expandRawHandleIntrinsic (#12071)
Create a new JitEE method expandRawHandleIntrinsic. Delete old isDelegateCreationAllowed and getAddrModuleDomainID.
Support CORINFO_INTRINSIC_GetRawHandle.
Change JITEEVersionIdentifier.
fix MEASURE_CLRAPI_CALLS: add resolveVirtualMethod and expandRawHandleIntrinsic there.
Diffstat (limited to 'src/inc')
-rw-r--r-- | src/inc/corinfo.h | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/inc/corinfo.h b/src/inc/corinfo.h index 0620994f65..e27283c8b3 100644 --- a/src/inc/corinfo.h +++ b/src/inc/corinfo.h @@ -213,11 +213,11 @@ TODO: Talk about initializing strutures before use #define SELECTANY extern __declspec(selectany) #endif -SELECTANY const GUID JITEEVersionIdentifier = { /* f00b3f49-ddd2-49be-ba43-6e49ffa66959 */ - 0xf00b3f49, - 0xddd2, - 0x49be, - { 0xba, 0x43, 0x6e, 0x49, 0xff, 0xa6, 0x69, 0x59 } +SELECTANY const GUID JITEEVersionIdentifier = { /* e5708e9e-dd18-4287-8745-5d10ff2697cf */ + 0xe5708e9e, + 0xdd18, + 0x4287, + { 0x87, 0x45, 0x5d, 0x10, 0xff, 0x26, 0x97, 0xcf } }; ////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -960,6 +960,7 @@ enum CorInfoIntrinsics CORINFO_INTRINSIC_ByReference_Value, CORINFO_INTRINSIC_Span_GetItem, CORINFO_INTRINSIC_ReadOnlySpan_GetItem, + CORINFO_INTRINSIC_GetRawHandle, CORINFO_INTRINSIC_Count, CORINFO_INTRINSIC_Illegal = -1, // Not a true intrinsic, @@ -2075,6 +2076,15 @@ public: CORINFO_CONTEXT_HANDLE ownerType = NULL /* IN */ ) = 0; + // Given resolved token that corresponds to an intrinsic classified as + // a CORINFO_INTRINSIC_GetRawHandle intrinsic, fetch the handle associated + // with the token. If this is not possible at compile-time (because the current method's + // code is shared and the token contains generic parameters) then indicate + // how the handle should be looked up at runtime. + virtual void expandRawHandleIntrinsic( + CORINFO_RESOLVED_TOKEN * pResolvedToken, + CORINFO_GENERICHANDLE_RESULT * pResult) = 0; + // If a method's attributes have (getMethodAttribs) CORINFO_FLG_INTRINSIC set, // getIntrinsicID() returns the intrinsic ID. // *pMustExpand tells whether or not JIT must expand the intrinsic. @@ -2119,13 +2129,6 @@ public: BOOL *pfIsOpenDelegate /* is the delegate open */ ) = 0; - // Determines whether the delegate creation obeys security transparency rules - virtual BOOL isDelegateCreationAllowed ( - CORINFO_CLASS_HANDLE delegateHnd, - CORINFO_METHOD_HANDLE calleeHnd - ) = 0; - - // Indicates if the method is an instance of the generic // method that passes (or has passed) verification virtual CorInfoInstantiationVerification isInstantiationOfVerifiedGeneric ( @@ -2846,8 +2849,6 @@ public: void **ppIndirection = NULL ) = 0; - virtual SIZE_T* getAddrModuleDomainID(CORINFO_MODULE_HANDLE module) = 0; - // return the native entry point to an EE helper (see CorInfoHelpFunc) virtual void* getHelperFtn ( CorInfoHelpFunc ftnNum, |