diff options
Diffstat (limited to 'mono/mini/mini-amd64.c')
-rw-r--r-- | mono/mini/mini-amd64.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/mono/mini/mini-amd64.c b/mono/mini/mini-amd64.c index 9bacb1b7555..faa64a45420 100644 --- a/mono/mini/mini-amd64.c +++ b/mono/mini/mini-amd64.c @@ -676,7 +676,7 @@ get_call_info (MonoGenericSharingContext *gsctx, MonoMemPool *mp, MonoMethodSign cinfo->ret.reg = AMD64_XMM0; break; case MONO_TYPE_GENERICINST: - if (!mono_type_generic_inst_is_valuetype (sig->ret)) { + if (!mono_type_generic_inst_is_valuetype (ret_type)) { cinfo->ret.storage = ArgInIReg; cinfo->ret.reg = AMD64_RAX; break; @@ -2558,11 +2558,6 @@ emit_call_body (MonoCompile *cfg, guint8 *code, guint32 patch_type, gconstpointe /* These methods are allocated using malloc */ near_call = FALSE; - if (cfg->compile_aot) { - near_call = TRUE; - no_patch = TRUE; - } - #ifdef MONO_ARCH_NOMAP32BIT near_call = FALSE; #endif @@ -2571,6 +2566,11 @@ emit_call_body (MonoCompile *cfg, guint8 *code, guint32 patch_type, gconstpointe if (optimize_for_xen) near_call = FALSE; + if (cfg->compile_aot) { + near_call = TRUE; + no_patch = TRUE; + } + if (near_call) { /* * Align the call displacement to an address divisible by 4 so it does @@ -6543,9 +6543,9 @@ mono_arch_instrument_epilog_full (MonoCompile *cfg, void *func, void *p, gboolea guchar *code = p; int save_mode = SAVE_NONE; MonoMethod *method = cfg->method; - int rtype = mini_type_get_underlying_type (NULL, mono_method_signature (method)->ret)->type; + MonoType *ret_type = mini_type_get_underlying_type (NULL, mono_method_signature (method)->ret); - switch (rtype) { + switch (ret_type->type) { case MONO_TYPE_VOID: /* special case string .ctor icall */ if (strcmp (".ctor", method->name) && method->klass == mono_defaults.string_class) @@ -6562,7 +6562,7 @@ mono_arch_instrument_epilog_full (MonoCompile *cfg, void *func, void *p, gboolea save_mode = SAVE_XMM; break; case MONO_TYPE_GENERICINST: - if (!mono_type_generic_inst_is_valuetype (mono_method_signature (method)->ret)) { + if (!mono_type_generic_inst_is_valuetype (ret_type)) { save_mode = SAVE_EAX; break; } |