Move MonoContext to mono-context for mips
[mono.git] / mono / mini / mini-x86.h
index 6fd17bf0b27996fa80280eb7d133be1fb1164621..6ee04ab2c1592b78fc07b6817398659193734449 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <mono/arch/x86/x86-codegen.h>
 #include <mono/utils/mono-sigcontext.h>
+#include <mono/utils/mono-context.h>
 
 #ifdef __native_client_codegen__
 #define kNaClAlignmentX86 32
 #include <signal.h>
 #endif
 
-/* sigcontext surrogate */
-struct sigcontext {
-       unsigned int eax;
-       unsigned int ebx;
-       unsigned int ecx;
-       unsigned int edx;
-       unsigned int ebp;
-       unsigned int esp;
-       unsigned int esi;
-       unsigned int edi;
-       unsigned int eip;
-};
+typedef void (* MonoW32ExceptionHandler) (int _dummy, EXCEPTION_POINTERS *info, void *context);
 
-typedef void (* MonoW32ExceptionHandler) (int _dummy, EXCEPTION_RECORD *info, void *context);
 void win32_seh_init(void);
 void win32_seh_cleanup(void);
 void win32_seh_set_handler(int type, MonoW32ExceptionHandler handler);
@@ -177,58 +166,6 @@ typedef struct {
        gboolean need_stack_frame;
 } MonoCompileArch;
 
-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
-# define SC_EAX sc_eax
-# define SC_EBX sc_ebx
-# define SC_ECX sc_ecx
-# define SC_EDX sc_edx
-# define SC_EBP sc_ebp
-# define SC_EIP sc_eip
-# define SC_ESP sc_esp
-# define SC_EDI sc_edi
-# define SC_ESI sc_esi
-#elif defined(__HAIKU__)
-# define SC_EAX regs.eax
-# define SC_EBX regs._reserved_2[2]
-# define SC_ECX regs.ecx
-# define SC_EDX regs.edx
-# define SC_EBP regs.ebp
-# define SC_EIP regs.eip
-# define SC_ESP regs.esp
-# define SC_EDI regs._reserved_2[0]
-# define SC_ESI regs._reserved_2[1]
-#else
-# define SC_EAX eax
-# define SC_EBX ebx
-# define SC_ECX ecx
-# define SC_EDX edx
-# define SC_EBP ebp
-# define SC_EIP eip
-# define SC_ESP esp
-# define SC_EDI edi
-# define SC_ESI esi
-#endif
-
-typedef struct {
-       guint32 eax;
-       guint32 ebx;
-       guint32 ecx;
-       guint32 edx;
-       guint32 ebp;
-       guint32 esp;
-    guint32 esi;
-       guint32 edi;
-       guint32 eip;
-} MonoContext;
-
-#define MONO_CONTEXT_SET_IP(ctx,ip) do { (ctx)->eip = (long)(ip); } while (0); 
-#define MONO_CONTEXT_SET_BP(ctx,bp) do { (ctx)->ebp = (long)(bp); } while (0); 
-#define MONO_CONTEXT_SET_SP(ctx,sp) do { (ctx)->esp = (long)(sp); } while (0); 
-
-#define MONO_CONTEXT_GET_IP(ctx) ((gpointer)((ctx)->eip))
-#define MONO_CONTEXT_GET_BP(ctx) ((gpointer)((ctx)->ebp))
-#define MONO_CONTEXT_GET_SP(ctx) ((gpointer)((ctx)->esp))
-
 #define MONO_CONTEXT_SET_LLVM_EXC_REG(ctx, exc) do { (ctx)->eax = (gsize)exc; } while (0)
 
 #ifdef _MSC_VER