#endif
+#ifdef __OpenBSD__
+#undef MONO_ARCH_USE_SIGACTION
+#endif
+
#endif /* PLATFORM_WIN32 */
#if defined (__NetBSD__)
#define MONO_ARCH_NOMAP32BIT
-#elif defined (__FreeBSD__)
+#elif defined (__FreeBSD__) || defined (__OpenBSD__)
#define REG_RAX 7
#define REG_RCX 4
#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
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;