if (acfg->cfgs [i])
method_flags [acfg->cfgs [i]->method_index] = acfg->cfgs [i]->aot_method_flags;
}
- emit_aot_data (acfg, MONO_AOT_TABLE_FLAGS_TABLE, "method_flags_table", method_flags, acfg->nmethods);
+ emit_aot_data (acfg, MONO_AOT_TABLE_METHOD_FLAGS_TABLE, "method_flags_table", method_flags, acfg->nmethods);
}
#endif /* #if !defined(DISABLE_AOT) && !defined(DISABLE_JIT) */
guint8 *plt_end;
guint8 *blob;
gpointer weak_field_indexes;
+ guint8 *method_flags_table;
/* Maps method indexes to their code */
gpointer *methods;
/* Sorted array of method addresses */
amodule->got_info_offsets = (guint32*)amodule->tables [MONO_AOT_TABLE_GOT_INFO_OFFSETS];
amodule->llvm_got_info_offsets = (guint32*)amodule->tables [MONO_AOT_TABLE_LLVM_GOT_INFO_OFFSETS];
amodule->weak_field_indexes = (guint32*)amodule->tables [MONO_AOT_TABLE_WEAK_FIELD_INDEXES];
+ amodule->method_flags_table = (guint8*)amodule->tables [MONO_AOT_TABLE_METHOD_FLAGS_TABLE];
} else {
amodule->blob = (guint8*)info->blob;
amodule->method_info_offsets = (guint32 *)info->method_info_offsets;
amodule->got_info_offsets = (guint32*)info->got_info_offsets;
amodule->llvm_got_info_offsets = (guint32*)info->llvm_got_info_offsets;
amodule->weak_field_indexes = (guint32*)info->weak_field_indexes;
+ amodule->method_flags_table = (guint8*)info->method_flags_table;
}
amodule->unbox_trampolines = (guint32 *)info->unbox_trampolines;
amodule->unbox_trampolines_end = (guint32 *)info->unbox_trampolines_end;
}
if (mono_llvm_only) {
- guint8 flags = amodule->info.method_flags_table [method_index];
+ guint8 flags = amodule->method_flags_table [method_index];
/* The caller needs to looks this up, but its hard to do without constructing the full MonoJitInfo, so save it here */
if (flags & MONO_AOT_METHOD_FLAG_GSHAREDVT_VARIABLE) {
mono_aot_lock ();
p += 4;
code = (guint8 *)amodule->methods [method_index];
- guint8 flags = amodule->info.method_flags_table [method_index];
+ guint8 flags = amodule->method_flags_table [method_index];
if (flags & MONO_AOT_METHOD_FLAG_HAS_CCTOR)
klass_to_run_ctor = decode_klass_ref (amodule, p, &p, error);
#include "mini.h"
/* Version number of the AOT file format */
-#define MONO_AOT_FILE_VERSION 177
+#define MONO_AOT_FILE_VERSION 178
#define MONO_AOT_TRAMP_PAGE_SIZE 16384
typedef enum {
MONO_AOT_TABLE_BLOB,
- MONO_AOT_TABLE_IMAGE_TABLE,
MONO_AOT_TABLE_CLASS_NAME,
+ MONO_AOT_TABLE_CLASS_INFO_OFFSETS,
MONO_AOT_TABLE_METHOD_INFO_OFFSETS,
MONO_AOT_TABLE_EX_INFO_OFFSETS,
- MONO_AOT_TABLE_CLASS_INFO_OFFSETS,
- MONO_AOT_TABLE_GOT_INFO_OFFSETS,
- MONO_AOT_TABLE_LLVM_GOT_INFO_OFFSETS,
MONO_AOT_TABLE_EXTRA_METHOD_INFO_OFFSETS,
MONO_AOT_TABLE_EXTRA_METHOD_TABLE,
+ MONO_AOT_TABLE_GOT_INFO_OFFSETS,
+ MONO_AOT_TABLE_LLVM_GOT_INFO_OFFSETS,
+ MONO_AOT_TABLE_IMAGE_TABLE,
MONO_AOT_TABLE_WEAK_FIELD_INDEXES,
- MONO_AOT_TABLE_FLAGS_TABLE,
+ MONO_AOT_TABLE_METHOD_FLAGS_TABLE,
MONO_AOT_TABLE_NUM
} MonoAotFileTable;