diff options
author | David Wrighton <davidwr@microsoft.com> | 2017-03-17 03:43:47 +0300 |
---|---|---|
committer | David Wrighton <davidwr@microsoft.com> | 2017-03-17 03:43:47 +0300 |
commit | d4da37e00d89a168c178d7177b8f77793e2a08e9 (patch) | |
tree | 20396f947434652af21b6d0d1dc4bdfa69631a39 /src/Native/Runtime/RuntimeInstance.cpp | |
parent | a64d77c6301b16a1209fe2909d18ee0df004f515 (diff) |
Experimental prototype of jit for CoreRT
- Refactorings and tweaks of various ILCompiler infrastructure to allow use within the runtime
- Refactor delegate creation info off of CompilerTypeSystemContext onto TypeSystemContext
- Tweak jit interface to always refer to nodes via interfaces instead of concrete types
- adjust CorInfoImpl.constructStringLiteral to respect the RepresentsIndirectionCell flag
- Initial copy of JitCodeManager. Currently only supports Windows.
- System.Private.Jit
- Uses infrastructure from the ILCompiler such as the CorInfoImpl, jitinterface, and the dependency node infrastructure to define a way to express newly generated code and its dependencies.
- Where relocs from jitted code depend on resolving to other components, they are always indirected through an indirection cell, and the final value is computed by the dynamic type loader GenericDictionaryCell system (which is poorly named, and is actually a general purpose runtime component resolution system.)
- New concept of dynamic MethodEntrypoints in the type loader. This is used to bridge to the jit where necessary
- The various bits of build time goo to produce experimental versions of System.Private.Reflection.Core, System.Private.Reflection.Execution, and System.Private.TypeLoader which contain the ECMA based type loader, and support the jit.
- The new behavior is only enabled for these new experimental builds.
- As the existing ECMA 335 based typeloader/reflection logic hasn't been enabled for building, there are fixes to make it work again
[tfs-changeset: 1651156]
Diffstat (limited to 'src/Native/Runtime/RuntimeInstance.cpp')
-rw-r--r-- | src/Native/Runtime/RuntimeInstance.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/Native/Runtime/RuntimeInstance.cpp b/src/Native/Runtime/RuntimeInstance.cpp index 1be7583e1..f5ad3bce1 100644 --- a/src/Native/Runtime/RuntimeInstance.cpp +++ b/src/Native/Runtime/RuntimeInstance.cpp @@ -436,6 +436,11 @@ COOP_PINVOKE_HELPER(TypeManagerHandle, RhpCreateTypeManager, (HANDLE osModule, v return TypeManagerHandle::Create(typeManager); } +COOP_PINVOKE_HELPER(HANDLE, RhGetOSModuleForMrt, ()) +{ + return GetRuntimeInstance()->GetPalInstance(); +} + COOP_PINVOKE_HELPER(void*, RhpRegisterOsModule, (HANDLE hOsModule)) { RuntimeInstance::OsModuleEntry * pEntry = new (nothrow) RuntimeInstance::OsModuleEntry(); |