2009-12-05 Zoltan Varga <vargaz@gmail.com>
+ * aot-compiler.c (emit_trampoline): Emit the trampoline info into the global
+ blob.
+
+ * aot-runtime.c (load_function): Update after the change above.
+
+ * mini.h: Bump AOT file format version.
+
* method-to-ir.c (mono_method_to_ir): Disallow the delegate optimization
if the delegate class is dynamic.
2009-12-04 Geoff Norton <gnorton@novell.com>
- * debugger-agent.c: When doing a func-eval invoke on a suspended runtime,
+ * debugger-agent.c: When doing a func-eval invoke on a suspended runtime,
we need to track the original suspend count so the thread properly
wakes up in resume_thread.
{
char start_symbol [256];
char symbol [256];
- guint32 buf_size;
+ guint32 buf_size, info_offset;
MonoJumpInfo *patch_info;
guint8 *buf, *p;
GPtrArray *patches;
sprintf (symbol, "%s_p", name);
+ info_offset = add_to_blob (acfg, buf, p - buf);
+
emit_section_change (acfg, ".text", 0);
emit_global (acfg, symbol, FALSE);
emit_label (acfg, symbol);
-
- emit_bytes (acfg, buf, p - buf);
+
+ emit_int32 (acfg, info_offset);
/* Emit debug info */
if (unwind_ops) {
/* Nothing to patch */
return code;
+ p = amodule->blob + *(guint32*)p;
+
/* Similar to mono_aot_load_method () */
n_patches = decode_value (p, &p);
#endif
/* Version number of the AOT file format */
-#define MONO_AOT_FILE_VERSION "64"
+#define MONO_AOT_FILE_VERSION "65"
//TODO: This is x86/amd64 specific.
#define mono_simd_shuffle_mask(a,b,c,d) ((a) | ((b) << 2) | ((c) << 4) | ((d) << 6))