#define MONO_MAX_IREGS 16
-#define MONO_MAX_FREGS 6
+#define MONO_MAX_FREGS AMD64_XMM_NREG
#define MONO_ARCH_FRAME_ALIGNMENT 16
#define MONO_CONTEXT_GET_BP(ctx) ((gpointer)((ctx)->rbp))
#define MONO_CONTEXT_GET_SP(ctx) ((gpointer)((ctx)->rsp))
+#define MONO_INIT_CONTEXT_FROM_FUNC(ctx,start_func) do { \
+ mono_arch_flush_register_windows (); \
+ MONO_CONTEXT_SET_IP ((ctx), (start_func)); \
+ MONO_CONTEXT_SET_BP ((ctx), __builtin_frame_address (0)); \
+ } while (0)
+
#define MONO_ARCH_USE_SIGACTION 1
/*
#define MONO_ARCH_EMULATE_CONV_R8_UN 1
#define MONO_ARCH_EMULATE_LCONV_TO_R8_UN 1
+#define MONO_ARCH_EMULATE_FREM 1
#define MONO_ARCH_NEED_DIV_CHECK 1
#define MONO_ARCH_HAVE_IS_INT_OVERFLOW 1
+#define MONO_ARCH_ENABLE_EMIT_STATE_OPT 1
+#define MONO_ARCH_HAVE_INVALIDATE_METHOD 1
+#define MONO_ARCH_HAVE_THROW_CORLIB_EXCEPTION 1
+#define MONO_ARCH_HAVE_OUT_OF_LINE_BBLOCKS 1
+#define MONO_ARCH_HAVE_PIC_AOT 1
+#define MONO_ARCH_HAVE_CREATE_TRAMPOLINE_FROM_TOKEN 1
gpointer*
mono_amd64_get_vcall_slot_addr (guint8* code, guint64 *regs);
void
mono_amd64_exceptions_init (void);
+void
+mono_amd64_tramp_init (void);
+
/* FIXME: */
//#define MONO_ARCH_BIGMUL_INTRINS 1