From 2ad46cdeca74a2c3f451cfe31c19ee9ada0edd41 Mon Sep 17 00:00:00 2001 From: monojenkins Date: Mon, 27 Jul 2020 22:00:48 -0400 Subject: [PATCH] [wasm] Use interp-only instead of interp-llvmonly as the default execution mode. (#39880) interp-llvmonly caused mono_llvm_only to be set, causing bad behavior like stack walks not working. Co-authored-by: vargaz --- src/mono/mono/mini/driver.c | 6 +----- src/mono/mono/mini/jit.h | 2 ++ src/mono/mono/mini/mini-runtime.h | 4 +--- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/mono/mono/mini/driver.c b/src/mono/mono/mini/driver.c index 322a23c..aa72d2a 100644 --- a/src/mono/mono/mini/driver.c +++ b/src/mono/mono/mini/driver.c @@ -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; diff --git a/src/mono/mono/mini/jit.h b/src/mono/mono/mini/jit.h index 011792c..02639c9 100644 --- a/src/mono/mono/mini/jit.h +++ b/src/mono/mono/mini/jit.h @@ -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; diff --git a/src/mono/mono/mini/mini-runtime.h b/src/mono/mono/mini/mini-runtime.h index 971d9a5..7061283 100644 --- a/src/mono/mono/mini/mini-runtime.h +++ b/src/mono/mono/mini/mini-runtime.h @@ -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) { -- 2.7.4