2009-02-23 Mark Probst <mark.probst@gmail.com>
[mono.git] / mono / mini / mini-amd64.h
index 157f002561a1e84a58db18f6d2b8f14369eb03dc..83a9f9ae12939e48f44418d9de19c7b1529cc465 100644 (file)
@@ -221,6 +221,10 @@ typedef struct {
 
 #endif
 
+#ifdef __OpenBSD__
+#undef MONO_ARCH_USE_SIGACTION
+#endif
+
 #endif /* PLATFORM_WIN32 */
 
 #if defined (__NetBSD__)
@@ -245,7 +249,7 @@ typedef struct {
 
 #define MONO_ARCH_NOMAP32BIT
 
-#elif defined (__FreeBSD__)
+#elif defined (__FreeBSD__) || defined (__OpenBSD__)
 
 #define REG_RAX 7
 #define REG_RCX 4
@@ -312,9 +316,11 @@ typedef struct {
 #define MONO_ARCH_COMMON_VTABLE_TRAMPOLINE 1
 #define MONO_ARCH_HAVE_CMOV_OPS 1
 #define MONO_ARCH_HAVE_NOTIFY_PENDING_EXC 1
-#define MONO_ARCH_ENABLE_NORMALIZE_OPCODES 1
+#define MONO_ARCH_HAVE_EXCEPTIONS_INIT 1
 #define MONO_ARCH_ENABLE_GLOBAL_RA 1
 #define MONO_ARCH_HAVE_GENERALIZED_IMT_THUNK 1
+#define MONO_ARCH_HAVE_LIVERANGE_OPS 1
+#define MONO_ARCH_HAVE_XP_UNWIND 1
 #if !defined(PLATFORM_WIN32) && !defined(HAVE_MOVING_COLLECTOR)
 #define MONO_ARCH_MONITOR_OBJECT_REG AMD64_RDI
 #endif
@@ -350,6 +356,9 @@ mono_amd64_throw_exception (guint64 dummy1, guint64 dummy2, guint64 dummy3, guin
                                                        guint64 rax, guint64 rcx, guint64 rdx,
                                                        guint64 rethrow);
 
+guint64
+mono_amd64_get_original_ip (void) MONO_INTERNAL;
+
 guint8*
 mono_amd64_emit_tls_get (guint8* code, int dreg, int tls_offset) MONO_INTERNAL;