diff options
author | Bruce Forstall <brucefo@microsoft.com> | 2016-10-04 15:12:46 -0700 |
---|---|---|
committer | Bruce Forstall <brucefo@microsoft.com> | 2016-10-06 11:43:49 -0700 |
commit | c47362766e24ab4a7195fa1fb851d254c7b84373 (patch) | |
tree | ce2b2230f63b387856c81c026b4dbcef589020bb /src/inc | |
parent | 920bf1330d0148fc5a277d7ea18f4b7c95c89258 (diff) | |
download | coreclr-c47362766e24ab4a7195fa1fb851d254c7b84373.tar.gz coreclr-c47362766e24ab4a7195fa1fb851d254c7b84373.tar.bz2 coreclr-c47362766e24ab4a7195fa1fb851d254c7b84373.zip |
Enable legacy JIT fallback for CoreCLR on Windows x86
This is to support the eventual case where RyuJIT/x86 becomes the default
x86 JIT, but we support fallback to the older, legacy JIT32/x86 (which
will be renamed compatjit.dll). This uses the same mechanism that was
built for .NET 4.6 when RyuJIT/x64 was shipped, and allowed fallback
to JIT64 as compatjit.dll.
However, we use a different configuration name to avoid conflicting
with the .NET 4.6 COMPlus_useLegacy name (and unintentionally causing
users to fall back to JIT64 with their .NET 4.6 apps).
The COMPlus variable is COMPlus_UseWindowsX86CoreLegacyJit=1. For the
dotnet.exe host, you can set `"System.JIT.UseWindowsX86CoreLegacyJit": true`
in the "configProperties" section of the app.runtimeconfig.json file.
There is a new COMPlus_RequireLegacyJit=1 option to aid testing JIT
fallback.
Diffstat (limited to 'src/inc')
-rw-r--r-- | src/inc/clrconfigvalues.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/inc/clrconfigvalues.h b/src/inc/clrconfigvalues.h index 1bd04197f5..3e166da9cb 100644 --- a/src/inc/clrconfigvalues.h +++ b/src/inc/clrconfigvalues.h @@ -477,6 +477,12 @@ RETAIL_CONFIG_DWORD_INFO(EXTERNAL_UseLegacyJit, W("useLegacyJit"), 0, "Set to 1 RETAIL_CONFIG_STRING_INFO_EX(EXTERNAL_DisableNativeImageLoadList, W("DisableNativeImageLoadList"), "Refuse to load native images corresponding to one of the assemblies on this semicolon-delimited list of assembly names.", CLRConfig::REGUTIL_default) #endif +#if defined(FEATURE_CORECLR) && defined(_TARGET_X86_) +RETAIL_CONFIG_DWORD_INFO(EXTERNAL_UseWindowsX86CoreLegacyJit, W("UseWindowsX86CoreLegacyJit"), 0, "Set to 1 to do all JITing with compatjit.dll. Only applicable to Windows x86 .NET Core.") +#endif + +RETAIL_CONFIG_DWORD_INFO(EXTERNAL_RequireLegacyJit, W("RequireLegacyJit"), 0, "Set to 1 to require the use of legacy JIT (via COMPlus_useLegacyJit=1 or COMPlus_UseWindowsX86CoreLegacyJit=1).") + CONFIG_STRING_INFO_EX(INTERNAL_JitValNumCSE, W("JitValNumCSE"), "Enables ValNum CSE for the specified methods", CLRConfig::REGUTIL_default) CONFIG_STRING_INFO_EX(INTERNAL_JitLexicalCSE, W("JitLexicalCSE"), "Enables Lexical CSE for the specified methods", CLRConfig::REGUTIL_default) CONFIG_DWORD_INFO_EX(INTERNAL_JitNoCSE, W("JitNoCSE"), 0, "", CLRConfig::REGUTIL_default) |