Fix the build.
[mono.git] / mono / mini / aot-compiler.c
index ce970a86be2b2300e26fdbf9d138b6a6b813a2b1..70e293d123d782331054c6abf1aa31b5916be2c3 100644 (file)
@@ -153,8 +153,8 @@ typedef struct MonoAotStats {
        int methods_without_got_slots, direct_calls, all_calls, llvm_count;
        int got_slots, offsets_size;
        int method_categories [METHOD_CAT_NUM];
-       int got_slot_types [MONO_PATCH_INFO_NONE];
-       int got_slot_info_sizes [MONO_PATCH_INFO_NONE];
+       int got_slot_types [MONO_PATCH_INFO_NUM];
+       int got_slot_info_sizes [MONO_PATCH_INFO_NUM];
        int jit_time, gen_time, link_time;
 } MonoAotStats;
 
@@ -3122,7 +3122,7 @@ is_plt_patch (MonoJumpInfo *patch_info)
        case MONO_PATCH_INFO_METHOD:
        case MONO_PATCH_INFO_INTERNAL_METHOD:
        case MONO_PATCH_INFO_JIT_ICALL_ADDR:
-       case MONO_PATCH_INFO_ICALL_ADDR:
+       case MONO_PATCH_INFO_ICALL_ADDR_CALL:
        case MONO_PATCH_INFO_RGCTX_FETCH:
                return TRUE;
        default:
@@ -3960,8 +3960,9 @@ add_wrappers (MonoAotCompile *acfg)
                                slen = mono_metadata_decode_value (p, &p);
                                n = (char *)g_memdup (p, slen + 1);
                                n [slen] = 0;
-                               t = mono_reflection_type_from_name (n, acfg->image);
+                               t = mono_reflection_type_from_name_checked (n, acfg->image, &error);
                                g_assert (t);
+                               mono_error_assert_ok (&error);
                                g_free (n);
 
                                klass = mono_class_from_mono_type (t);
@@ -4781,10 +4782,10 @@ is_direct_callable (MonoAotCompile *acfg, MonoMethod *method, MonoJumpInfo *patc
                        if (direct_callable)
                                return TRUE;
                }
-       } else if ((patch_info->type == MONO_PATCH_INFO_ICALL_ADDR && patch_info->data.method->flags & METHOD_ATTRIBUTE_PINVOKE_IMPL)) {
+       } else if ((patch_info->type == MONO_PATCH_INFO_ICALL_ADDR_CALL && patch_info->data.method->flags & METHOD_ATTRIBUTE_PINVOKE_IMPL)) {
                if (acfg->aot_opts.direct_pinvoke)
                        return TRUE;
-       } else if (patch_info->type == MONO_PATCH_INFO_ICALL_ADDR) {
+       } else if (patch_info->type == MONO_PATCH_INFO_ICALL_ADDR_CALL) {
                if (acfg->aot_opts.direct_icalls)
                        return TRUE;
                return FALSE;
@@ -5067,7 +5068,7 @@ emit_and_reloc_code (MonoAotCompile *acfg, MonoMethod *method, guint8 *code, gui
                                        }
 
                                        acfg->stats.all_calls ++;
-                               } else if (patch_info->type == MONO_PATCH_INFO_ICALL_ADDR) {
+                               } else if (patch_info->type == MONO_PATCH_INFO_ICALL_ADDR_CALL) {
                                        if (!got_only && is_direct_callable (acfg, method, patch_info)) {
                                                if (!(patch_info->data.method->flags & METHOD_ATTRIBUTE_PINVOKE_IMPL))
                                                        direct_pinvoke = mono_lookup_icall_symbol (patch_info->data.method);
@@ -5381,6 +5382,7 @@ encode_patch (MonoAotCompile *acfg, MonoJumpInfo *patch_info, guint8 *buf, guint
        case MONO_PATCH_INFO_METHOD:
        case MONO_PATCH_INFO_METHOD_JUMP:
        case MONO_PATCH_INFO_ICALL_ADDR:
+       case MONO_PATCH_INFO_ICALL_ADDR_CALL:
        case MONO_PATCH_INFO_METHOD_RGCTX:
        case MONO_PATCH_INFO_METHOD_CODE_SLOT:
                encode_method_ref (acfg, patch_info->data.method, p, &p);
@@ -6056,7 +6058,8 @@ get_plt_entry_debug_sym (MonoAotCompile *acfg, MonoJumpInfo *ji, GHashTable *cac
        case MONO_PATCH_INFO_RGCTX_FETCH:
                debug_sym = g_strdup_printf ("%s_rgctx_fetch_%d", prefix, acfg->label_generator ++);
                break;
-       case MONO_PATCH_INFO_ICALL_ADDR: {
+       case MONO_PATCH_INFO_ICALL_ADDR:
+       case MONO_PATCH_INFO_ICALL_ADDR_CALL: {
                char *s = get_debug_sym (ji->data.method, "", cache);
                
                debug_sym = g_strdup_printf ("%s_icall_native_%s", prefix, s);
@@ -7836,7 +7839,7 @@ mono_aot_get_direct_call_symbol (MonoJumpInfoType type, gconstpointer data)
                if (type == MONO_PATCH_INFO_JIT_ICALL_ADDR) {
                        /* Call to a C function implementing a jit icall */
                        sym = mono_lookup_jit_icall_symbol ((const char *)data);
-               } else if (type == MONO_PATCH_INFO_ICALL_ADDR) {
+               } else if (type == MONO_PATCH_INFO_ICALL_ADDR_CALL) {
                        MonoMethod *method = (MonoMethod *)data;
                        if (!(method->flags & METHOD_ATTRIBUTE_PINVOKE_IMPL))
                                sym = mono_lookup_icall_symbol (method);
@@ -7866,7 +7869,7 @@ mono_aot_get_plt_symbol (MonoJumpInfoType type, gconstpointer data)
                if (type == MONO_PATCH_INFO_JIT_ICALL_ADDR) {
                        /* Call to a C function implementing a jit icall */
                        sym = mono_lookup_jit_icall_symbol ((const char *)data);
-               } else if (type == MONO_PATCH_INFO_ICALL_ADDR) {
+               } else if (type == MONO_PATCH_INFO_ICALL_ADDR_CALL) {
                        MonoMethod *method = (MonoMethod *)data;
                        if (!(method->flags & METHOD_ATTRIBUTE_PINVOKE_IMPL))
                                sym = mono_lookup_icall_symbol (method);
@@ -10061,11 +10064,11 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
 
        memset (&acfg->aot_opts, 0, sizeof (acfg->aot_opts));
        acfg->aot_opts.write_symbols = TRUE;
-       acfg->aot_opts.ntrampolines = 1024;
-       acfg->aot_opts.nrgctx_trampolines = 1024;
-       acfg->aot_opts.nimt_trampolines = 128;
+       acfg->aot_opts.ntrampolines = 4096;
+       acfg->aot_opts.nrgctx_trampolines = 4096;
+       acfg->aot_opts.nimt_trampolines = 512;
        acfg->aot_opts.nrgctx_fetch_trampolines = 128;
-       acfg->aot_opts.ngsharedvt_arg_trampolines = 128;
+       acfg->aot_opts.ngsharedvt_arg_trampolines = 512;
        acfg->aot_opts.llvm_path = g_strdup ("");
        acfg->aot_opts.temp_path = g_strdup ("");
 #ifdef MONOTOUCH
@@ -10473,7 +10476,7 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
                int i;
 
                aot_printf (acfg, "GOT slot distribution:\n");
-               for (i = 0; i < MONO_PATCH_INFO_NONE; ++i)
+               for (i = 0; i < MONO_PATCH_INFO_NUM; ++i)
                        if (acfg->stats.got_slot_types [i])
                                aot_printf (acfg, "\t%s: %d (%d)\n", get_patch_name (i), acfg->stats.got_slot_types [i], acfg->stats.got_slot_info_sizes [i]);
                aot_printf (acfg, "\nMethod stats:\n");