gboolean thumb_mixed, need_no_dead_strip, need_pt_gnu_stack;
GHashTable *ginst_hash;
gboolean global_symbols;
-#ifdef MONOTOUCH
gboolean direct_method_addresses;
-#endif
} MonoAotCompile;
typedef struct {
sprintf (symbol, "ut_%d", index);
emit_int32 (acfg, index);
- emit_symbol_diff (acfg, symbol, end_symbol, 0);
+ if (acfg->direct_method_addresses)
+ emit_pointer (acfg, symbol);
+ else
+ emit_symbol_diff (acfg, symbol, end_symbol, 0);
/* Make sure the table is sorted by index */
g_assert (index > prev_index);
prev_index = index;
} else if (entry [0] > method_index) {
high = entry_index;
} else {
- code = amodule->code + entry [1];
+ if (amodule->info.flags & MONO_AOT_FILE_FLAG_DIRECT_METHOD_ADDRESSES)
+ code = (gpointer)(gsize)entry [1];
+ else
+ code = amodule->code + entry [1];
break;
}
}