summaryrefslogtreecommitdiff
path: root/defines.h
diff options
context:
space:
mode:
Diffstat (limited to 'defines.h')
-rw-r--r--defines.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/defines.h b/defines.h
index 52d9856ab6..cb488d7bf7 100644
--- a/defines.h
+++ b/defines.h
@@ -140,7 +140,9 @@ void xfree _((void*));
#if defined(sparc) || defined(__sparc__)
# if defined(linux) || defined(__linux__)
#define FLUSH_REGISTER_WINDOWS asm("ta 0x83")
-# else /* Solaris, not sparc linux */
+# elif defined(__FreeBSD__) && defined(__sparc64__)
+#define FLUSH_REGISTER_WINDOWS asm volatile("flushw" : :)
+# else /* Solaris, OpenBSD, NetBSD, etc. */
#define FLUSH_REGISTER_WINDOWS asm("ta 0x03")
# endif /* trap always to flush register windows if we are on a Sparc system */
#else /* Not a sparc, so */