summaryrefslogtreecommitdiff
path: root/src/inc
diff options
context:
space:
mode:
authorBruce Forstall <brucefo@microsoft.com>2016-10-04 15:12:46 -0700
committerBruce Forstall <brucefo@microsoft.com>2016-10-06 11:43:49 -0700
commitc47362766e24ab4a7195fa1fb851d254c7b84373 (patch)
treece2b2230f63b387856c81c026b4dbcef589020bb /src/inc
parent920bf1330d0148fc5a277d7ea18f4b7c95c89258 (diff)
downloadcoreclr-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.h6
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)