2010-05-05 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / mini / mini-amd64.c
index 95ba8189ae0889cb47cdf0e0618fd795bd027c8c..fd6cc4b07163a8227ff086ff75af89442c2f3fef 100644 (file)
@@ -7500,6 +7500,41 @@ mono_arch_context_get_int_reg (MonoContext *ctx, int reg)
        }
 }
 
+/*
+ * mono_arch_emit_load_aotconst:
+ *
+ *   Emit code to load the contents of the GOT slot identified by TRAMP_TYPE and
+ * TARGET from the mscorlib GOT in full-aot code.
+ * On AMD64, the result is placed into R11.
+ */
+guint8*
+mono_arch_emit_load_aotconst (guint8 *start, guint8 *code, MonoJumpInfo **ji, int tramp_type, gconstpointer target)
+{
+       *ji = mono_patch_info_list_prepend (*ji, code - start, tramp_type, target);
+       amd64_mov_reg_membase (code, AMD64_R11, AMD64_RIP, 0, 8);
+
+       return code;
+}
+
+/*
+ * mono_arch_get_trampolines:
+ *
+ *   Return a list of MonoTrampInfo structures describing arch specific trampolines
+ * for AOT.
+ */
+GSList *
+mono_arch_get_trampolines (gboolean aot)
+{
+       MonoTrampInfo *info;
+       GSList *tramps = NULL;
+
+       mono_arch_get_throw_pending_exception (&info, aot);
+
+       tramps = g_slist_append (tramps, info);
+
+       return tramps;
+}
+
 /* Soft Debug support */
 #ifdef MONO_ARCH_SOFT_DEBUG_SUPPORTED