* mini-trampolines.c: implement AOT IMT support.
* mini-x86.h: enable IMT support for wider testing.
svn path=/trunk/mono/; revision=81778
+
+Wed Jul 11 12:41:32 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+ * mini-trampolines.c: implement AOT IMT support.
+ * mini-x86.h: enable IMT support for wider testing.
+
2007-07-10 Zoltan Varga <vargaz@gmail.com>
* inssel.brg (emit_imt_argument): Add aot support here.
* is AppDomain:InvokeInDomain, so this is the same check as in
* mono_method_same_domain () but without loading the metadata for the method.
*/
- if ((is_got_entry && (mono_domain_get () == mono_get_root_domain ())) || mono_domain_owns_vtable_slot (mono_domain_get (), vtable_slot))
+ if ((is_got_entry && (mono_domain_get () == mono_get_root_domain ())) || mono_domain_owns_vtable_slot (mono_domain_get (), vtable_slot)) {
+#ifdef MONO_ARCH_HAVE_IMT
+ if (!method)
+ method = mono_get_method (image, token, NULL);
+ vtable_slot = mono_convert_imt_slot_to_vtable_slot (vtable_slot, (gpointer*)regs, method);
+#endif
*vtable_slot = addr;
+ }
return addr;
}
#define MONO_ARCH_HAVE_CREATE_SPECIFIC_TRAMPOLINE 1
#define MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE 1
#define MONO_ARCH_HAVE_CREATE_VARS 1
-/*#define MONO_ARCH_HAVE_IMT 1*/
+#define MONO_ARCH_HAVE_IMT 1
#define MONO_ARCH_IMT_REG X86_EDX
#endif /* __MONO_MINI_X86_H__ */