[wasm] Use interp-only instead of interp-llvmonly as the default execution mode....
authormonojenkins <jo.shields+jenkins@xamarin.com>
Tue, 28 Jul 2020 02:00:48 +0000 (22:00 -0400)
committerGitHub <noreply@github.com>
Tue, 28 Jul 2020 02:00:48 +0000 (22:00 -0400)
interp-llvmonly caused mono_llvm_only to be set, causing bad behavior like
stack walks not working.

Co-authored-by: vargaz <vargaz@users.noreply.github.com>
src/mono/mono/mini/driver.c
src/mono/mono/mini/jit.h
src/mono/mono/mini/mini-runtime.h

index 322a23c..aa72d2a 100644 (file)
@@ -2006,10 +2006,6 @@ apply_root_domain_configuration_file_bindings (MonoDomain *domain, char *root_do
 static void
 mono_check_interp_supported (void)
 {
-#ifdef DISABLE_INTERPRETER
-       g_error ("Mono IL interpreter support is missing\n");
-#endif
-
 #ifdef MONO_CROSS_COMPILE
        g_error ("--interpreter on cross-compile runtimes not supported\n");
 #endif
@@ -2999,7 +2995,7 @@ mono_runtime_set_execution_mode_full (int mode, gboolean override)
                mono_llvm_only = TRUE;
                break;
 
-       case MONO_EE_MODE_INTERP:
+       case MONO_AOT_MODE_INTERP_ONLY:
                mono_check_interp_supported ();
                mono_use_interpreter = TRUE;
 
index 011792c..02639c9 100644 (file)
@@ -65,6 +65,8 @@ typedef enum {
        MONO_AOT_MODE_INTERP_LLVMONLY,
        /* Use only llvm compiled code, fall back to the interpeter */
        MONO_AOT_MODE_LLVMONLY_INTERP,
+       /* Same as --interp */
+       MONO_AOT_MODE_INTERP_ONLY,
        /* Sentinel value used internally by the runtime. We use a large number to avoid clashing with some internal values. */
        MONO_AOT_MODE_LAST = 1000,
 } MonoAotMode;
index 971d9a5..7061283 100644 (file)
@@ -411,11 +411,9 @@ extern MonoEEFeatures mono_ee_features;
 
 //XXX this enum *MUST extend MonoAotMode as they are consumed together.
 typedef enum {
-       /* Always execute with interp, will use JIT to produce trampolines */
-       MONO_EE_MODE_INTERP = MONO_AOT_MODE_LAST,
+       MONO_EE_MODE_INTERP = MONO_AOT_MODE_INTERP_ONLY,
 } MonoEEMode;
 
-
 static inline MonoMethod*
 jinfo_get_method (MonoJitInfo *ji)
 {