[mips] Add missing define
[mono.git] / mono / utils / mono-context.h
index e0741ccf5db775be7ab9c2ad3c68e61b4efb9e5a..0a1bd524cfd42261ac798b6f0b2eb1b8c7fe726f 100644 (file)
@@ -10,8 +10,6 @@
 #ifndef __MONO_MONO_CONTEXT_H__
 #define __MONO_MONO_CONTEXT_H__
 
-#include <glib.h>
-
 #include "mono-compiler.h"
 #include "mono-sigcontext.h"
 #include "mono-machine.h"
  * MONO_CONTEXT_GET_CURRENT captures the current context as close as possible. One reg might be clobbered
  *  to hold the address of the target MonoContext. It will be a caller save one, so should not be a problem.
  */
-#if defined(MONO_CROSS_COMPILE)
-
-typedef struct {} MonoContext;
-
-#define MONO_CONTEXT_SET_IP(ctx,ip) g_assert_not_reached ()
-#define MONO_CONTEXT_SET_BP(ctx,bp) g_assert_not_reached ()
-#define MONO_CONTEXT_SET_SP(ctx,sp) g_assert_not_reached ()
-
-#define MONO_CONTEXT_GET_IP(ctx) NULL
-#define MONO_CONTEXT_GET_BP(ctx) NULL
-#define MONO_CONTEXT_GET_SP(ctx) NULL
-
-#define MONO_CONTEXT_GET_CURRENT(ctx) do {} while (0)
-
-#elif defined(__i386__) || defined(TARGET_X86)
+#if (defined(__i386__) && !defined(MONO_CROSS_COMPILE)) || (defined(TARGET_X86))
 
 /*HACK, move this to an eventual mono-signal.c*/
 #if defined( __linux__) || defined(__sun) || defined(__APPLE__) || defined(__NetBSD__) || \
@@ -162,7 +146,7 @@ typedef struct {
 
 #define MONO_ARCH_HAS_MONO_CONTEXT 1
 
-#elif defined(__x86_64__) || defined(TARGET_AMD64) /* defined(__i386__) */
+#elif (defined(__x86_64__) && !defined(MONO_CROSS_COMPILE)) || (defined(TARGET_AMD64)) /* defined(__i386__) */
 
 #include <mono/arch/amd64/amd64-codegen.h>
 
@@ -246,7 +230,7 @@ extern void mono_context_get_current (void *);
 
 #define MONO_ARCH_HAS_MONO_CONTEXT 1
 
-#elif defined(__arm__) || defined(TARGET_ARM) /* defined(__x86_64__) */
+#elif (defined(__arm__) && !defined(MONO_CROSS_COMPILE)) || (defined(TARGET_ARM)) /* defined(__x86_64__) */
 
 #include <mono/arch/arm/arm-codegen.h>
 
@@ -269,6 +253,8 @@ typedef struct {
 #if defined(HOST_WATCHOS)
 
 #define MONO_CONTEXT_GET_CURRENT(ctx) do { \
+       gpointer _dummy; \
+    ctx.regs [ARMREG_SP] = &_dummy; \
 } while (0);
 
 #else
@@ -300,7 +286,7 @@ typedef struct {
 
 #define MONO_ARCH_HAS_MONO_CONTEXT 1
 
-#elif defined(__aarch64__) || defined(TARGET_ARM64)
+#elif (defined(__aarch64__) && !defined(MONO_CROSS_COMPILE)) || (defined(TARGET_ARM64))
 
 #include <mono/arch/arm64/arm64-codegen.h>
 
@@ -711,7 +697,9 @@ mono_ia64_context_get_fp (MonoContext *ctx)
        return fp;
 }
 
-#elif (defined(__mips__) || defined(TARGET_MIPS)) && SIZEOF_REGISTER == 4 /* defined(__ia64__) */
+#elif ((defined(__mips__) && !defined(MONO_CROSS_COMPILE)) || (defined(TARGET_MIPS))) && SIZEOF_REGISTER == 4 /* defined(__ia64__) */
+
+#define MONO_ARCH_HAS_MONO_CONTEXT 1
 
 #include <mono/arch/mips/mips-codegen.h>