[jit] Avoid emitting seq points inside alloc wrappers, they contain critical regions...
authorZoltan Varga <vargaz@gmail.com>
Thu, 30 Jun 2016 21:40:18 +0000 (17:40 -0400)
committerZoltan Varga <vargaz@gmail.com>
Thu, 30 Jun 2016 21:40:24 +0000 (17:40 -0400)
mono/mini/mini.c

index da9f3bb6a2061d3efafc67a3cee6a9e797ad10eb..e497ce406aca70a1a3f81567e4683824053e767e 100644 (file)
@@ -3253,6 +3253,11 @@ mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, JitFl
                cfg->gen_sdb_seq_points = FALSE;
        }
 #endif
+       if (cfg->method->wrapper_type == MONO_WRAPPER_ALLOC) {
+               /* We can't have seq points inside gc critical regions */
+               cfg->gen_seq_points = FALSE;
+               cfg->gen_sdb_seq_points = FALSE;
+       }
        /* coop / nacl requires loop detection to happen */
 #if defined(__native_client_codegen__)
        cfg->opt |= MONO_OPT_LOOP;