diff options
author | Simon Nattress <simonn@microsoft.com> | 2016-01-05 02:16:16 +0300 |
---|---|---|
committer | Simon Nattress <simonn@microsoft.com> | 2016-01-14 05:13:04 +0300 |
commit | 69d12d925616ec536eb032bd2374495b201362a2 (patch) | |
tree | b08f30cf7dbfe2fe8541b72b17c9f3e87d5129b3 /src/Native/Runtime/CMakeLists.txt | |
parent | 3ce25bbff31befe1ba3ea8b4bcf16b8fb6ef3542 (diff) |
Interface dispatch support
Emit the supporting data structures for interface dispatch:
- Interface dispatch cell for each call site providing the resolution function entry point as well as the interface type and interface method slot number
- Interface map on EETypes specifying the list of interfaces they implement
- Dispatch map that provides, for each type, the lookup rows for interface type, interface method slot, and implementing method's VTable slot
- Dispatch map table that provides dispatch map pointers (the index into this table is stored on an EEType instead of a pointer to the map for space savings)
Added a work-around in the runtime to provide access to the dispatch map table until full module headers are implemented
Diffstat (limited to 'src/Native/Runtime/CMakeLists.txt')
-rw-r--r-- | src/Native/Runtime/CMakeLists.txt | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/Native/Runtime/CMakeLists.txt b/src/Native/Runtime/CMakeLists.txt index afafa46d8..af604f64c 100644 --- a/src/Native/Runtime/CMakeLists.txt +++ b/src/Native/Runtime/CMakeLists.txt @@ -1,6 +1,7 @@ set(COMMON_RUNTIME_SOURCES allocheap.cpp assert.cpp + CachedInterfaceDispatch.cpp Crst.cpp DebugEventSource.cpp dllmain.cpp @@ -77,6 +78,8 @@ if(WIN32) list(APPEND RUNTIME_SOURCES_ARCH_ASM ${ARCH_SOURCES_DIR}/GC.${ASM_SUFFIX} + ${ARCH_SOURCES_DIR}/StubDispatch.${ASM_SUFFIX} + ${ARCH_SOURCES_DIR}/ManagedCalloutThunk.${ASM_SUFFIX} ) else() @@ -120,7 +123,7 @@ add_definitions(-DFEATURE_PROFILING) add_definitions(-DFEATURE_REDHAWK) add_definitions(-DVERIFY_HEAP) add_definitions(-DCORERT) - +add_definitions(-DFEATURE_CACHED_INTERFACE_DISPATCH) add_definitions(-D_LIB) if(WIN32) |