r300: move some more function to generic
[mesa.git] / src / mesa / x86 / common_x86.c
index 0b2af0a3706b0988f9307c7fadc996fea3faac90..5321547935878e4291666ae17df344900c6dd98d 100644 (file)
 #include <sys/types.h>
 #include <sys/sysctl.h>
 #endif
+#if defined(USE_SSE_ASM) && defined(__OpenBSD__)
+#include <sys/param.h>
+#include <sys/sysctl.h>
+#include <machine/cpu.h>
+#endif
 
+#include "main/imports.h"
 #include "common_x86_asm.h"
-#include "imports.h"
 
 
 int _mesa_x86_cpu_features = 0;
@@ -113,6 +118,27 @@ static void check_os_sse_support( void )
       if (ret || !enabled)
          _mesa_x86_cpu_features &= ~(X86_FEATURE_XMM);
    }
+#elif defined (__NetBSD__)
+   {
+      int ret, enabled;
+      size_t len = sizeof(enabled);
+      ret = sysctlbyname("machdep.sse", &enabled, &len, (void *)NULL, 0);
+      if (ret || !enabled)
+         _mesa_x86_cpu_features &= ~(X86_FEATURE_XMM);
+   }
+#elif defined(__OpenBSD__)
+   {
+      int mib[2];
+      int ret, enabled;
+      size_t len = sizeof(enabled);
+
+      mib[0] = CTL_MACHDEP;
+      mib[1] = CPU_SSE;
+
+      ret = sysctl(mib, 2, &enabled, &len, NULL, 0);
+      if (ret || !enabled)
+         _mesa_x86_cpu_features &= ~(X86_FEATURE_XMM);
+   }
 #elif defined(WIN32)
    LPTOP_LEVEL_EXCEPTION_FILTER oldFilter;