diff --git a/README.md b/README.md
index c8f363a..ebb44d5 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@ int main()
```
-
OS | ✅ Windows ✅ Linux ✅ macOS ✅ Android ✅ iOS |
+OS | ✅ Windows ✅ Linux ✅ macOS ✅ Android ✅ iOS ✅ FreeBSD ✅ NetBSD ✅ OpenBSD |
Compiler | ✅ GCC ✅ Clang ✅ MSVC ✅ MinGW |
@@ -197,6 +197,42 @@ avxifma = 0
+
+FreeBSD/NetBSD/OpenBSD VM result (x86_64)
+
+```
+mmx = 1
+sse = 1
+sse2 = 1
+sse3 = 1
+ssse3 = 1
+sse41 = 1
+sse42 = 1
+sse4a = 1
+xop = 0
+avx = 1
+f16c = 1
+fma = 1
+fma4 = 0
+avx2 = 1
+avx512f = 0
+avx512bw = 0
+avx512cd = 0
+avx512dq = 0
+avx512vl = 0
+avx512vnni = 0
+avx512bf16 = 0
+avx512ifma = 0
+avx512vbmi = 0
+avx512vbmi2 = 0
+avx512fp16 = 0
+avxvnni = 0
+avxvnniint8 = 0
+avxifma = 0
+```
+
+
+
## Features
diff --git a/ruapu.h b/ruapu.h
index 2a443a8..8d6da47 100644
--- a/ruapu.h
+++ b/ruapu.h
@@ -70,7 +70,7 @@ static int ruapu_detect_isa(const void* some_inst)
}
#endif // WINAPI_FAMILY == WINAPI_FAMILY_APP
-#elif defined __ANDROID__ || defined __linux__ || defined __APPLE__
+#elif defined __ANDROID__ || defined __linux__ || defined __APPLE__ || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__
#include
static int g_ruapu_sigill_caught = 0;
@@ -108,7 +108,7 @@ static int ruapu_detect_isa(ruapu_some_inst some_inst)
return g_ruapu_sigill_caught ? 0 : 1;
}
-#endif // defined _WIN32 || defined __ANDROID__ || defined __linux__ || defined __APPLE__
+#endif // defined _WIN32 || defined __ANDROID__ || defined __linux__ || defined __APPLE__ || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__
#if defined _WIN32
@@ -355,7 +355,7 @@ RUAPU_ISAENTRY(zmmul)
void ruapu_init()
{
-#if defined _WIN32 || defined __ANDROID__ || defined __linux__ || defined __APPLE__
+#if defined _WIN32 || defined __ANDROID__ || defined __linux__ || defined __APPLE__ || defined __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__
for (size_t i = 0; i < sizeof(g_ruapu_isa_map) / sizeof(g_ruapu_isa_map[0]); i++)
{
g_ruapu_isa_map[i].capable = ruapu_detect_isa(g_ruapu_isa_map[i].inst);