[interp] make mixed mode work on arm64
[mono.git] / mono / mini / mini-arm64.h
index 154859e7165a50298f3d43ac989abaebc062bd80..c7cd1fb1262f4f40dc91cf98e148f5f1f61fd03c 100644 (file)
@@ -1,5 +1,5 @@
-/*
- * mini-arm64.h
+/**
+ * \file
  *
  * Copyright 2013 Xamarin Inc
  *
@@ -130,7 +130,7 @@ typedef struct {
 #define MONO_ARCH_EXC_REG ARMREG_R0
 #define MONO_ARCH_HAVE_XP_UNWIND 1
 #define MONO_ARCH_HAVE_CREATE_DELEGATE_TRAMPOLINE 1
-#define MONO_ARCH_HAVE_GENERALIZED_IMT_THUNK 1
+#define MONO_ARCH_HAVE_GENERALIZED_IMT_TRAMPOLINE 1
 #define MONO_ARCH_USE_SIGACTION 1
 #define MONO_ARCH_HAVE_SIGCTX_TO_MONOCTX 1
 #define MONO_ARCH_HAVE_CONTEXT_SET_INT_REG 1
@@ -143,15 +143,10 @@ typedef struct {
 #define MONO_ARCH_DYN_CALL_SUPPORTED 1
 #define MONO_ARCH_DYN_CALL_PARAM_AREA (DYN_CALL_STACK_ARGS * 8)
 #define MONO_ARCH_SOFT_DEBUG_SUPPORTED 1
-#ifndef TARGET_ANDROID
 #define MONO_ARCH_GSHAREDVT_SUPPORTED 1
-#endif
 #define MONO_ARCH_HAVE_SETUP_RESUME_FROM_SIGNAL_HANDLER_CTX 1
 #define MONO_ARCH_HAVE_SETUP_ASYNC_CALLBACK 1
 #define MONO_ARCH_HAVE_GENERAL_RGCTX_LAZY_FETCH_TRAMPOLINE 1
-#ifndef MONO_CROSS_COMPILE
-#define MONO_ARCH_ENABLE_MONO_LMF_VAR 1
-#endif
 #define MONO_ARCH_HAVE_OP_GET_EX_OBJ 1
 #define MONO_ARCH_HAVE_OBJC_GET_SELECTOR 1
 #define MONO_ARCH_HAVE_SDB_TRAMPOLINES 1
@@ -159,6 +154,11 @@ typedef struct {
 #define MONO_ARCH_HAVE_OP_GENERIC_CLASS_INIT 1
 #define MONO_ARCH_HAVE_OPCODE_NEEDS_EMULATION 1
 #define MONO_ARCH_HAVE_DECOMPOSE_LONG_OPTS 1
+#define MONO_ARCH_HAVE_HANDLER_BLOCK_GUARD 1
+#define MONO_ARCH_HAVE_INIT_LMF_EXT 1
+#ifndef TARGET_IOS
+#define MONO_ARCH_HAVE_HANDLER_BLOCK_GUARD_AOT 1
+#endif
 
 #ifdef TARGET_IOS
 
@@ -167,14 +167,10 @@ typedef struct {
 #else
 
 #define MONO_ARCH_REDZONE_SIZE 0
-#if !defined(__PIC__)
-#define MONO_ARCH_HAVE_TLS_GET 1
-#endif
-#define MONO_ARCH_HAVE_TLS_GET_REG 1
 
 #endif
 
-#if defined(TARGET_APPLETVOS)
+#if defined(TARGET_APPLETVOS) || defined(TARGET_IOS)
 #define MONO_ARCH_HAVE_UNWIND_BACKTRACE 1
 #endif
 
@@ -232,6 +228,7 @@ typedef struct {
 typedef struct {
        int nargs;
        int gr, fr, stack_usage;
+       gboolean pinvoke;
        ArgInfo ret;
        ArgInfo sig_cookie;
        ArgInfo args [1];
@@ -263,6 +260,8 @@ GSList* mono_arm_get_exception_trampolines (gboolean aot);
 
 void mono_arm_resume_unwind (gpointer arg, mgreg_t pc, mgreg_t *int_regs, gdouble *fp_regs, gboolean corlib, gboolean rethrow);
 
+gpointer mono_arm_handler_block_trampoline_helper (gpointer *ptr);
+
 CallInfo* mono_arch_get_call_info (MonoMemPool *mp, MonoMethodSignature *sig);
 
 #endif /* __MONO_MINI_ARM64_H__ */