From d1f2e78d561c3139b3ccc8fbace221e010c08f5e Mon Sep 17 00:00:00 2001 From: MaranBr Date: Tue, 26 Aug 2025 18:14:17 -0400 Subject: [PATCH] Fix logic --- src/common/settings.cpp | 3 +++ src/common/settings.h | 6 +++--- src/core/arm/dynarmic/arm_dynarmic_32.cpp | 2 +- src/core/arm/dynarmic/arm_dynarmic_64.cpp | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/common/settings.cpp b/src/common/settings.cpp index 105e1510f5..fdba7be99e 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -161,6 +161,9 @@ bool IsFastmemEnabled() { if (Settings::values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Unsafe) { return static_cast(values.cpuopt_unsafe_mmu); } +#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun__) + return false; +#endif return true; } diff --git a/src/common/settings.h b/src/common/settings.h index c503707fd5..c2f1562011 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -301,10 +301,10 @@ struct Values { Category::CpuDebug}; SwitchableSetting cpuopt_unsafe_mmu{linkage, -#if defined(_WIN32) || defined(__linux__) || defined(__ANDROID__) - true, -#else +#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun__) false, +#else + true, #endif "cpuopt_unsafe_mmu", Category::CpuUnsafe}; diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.cpp b/src/core/arm/dynarmic/arm_dynarmic_32.cpp index 27334b44e1..4de7eb7eb9 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_32.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic_32.cpp @@ -296,7 +296,7 @@ std::shared_ptr ArmDynarmic32::MakeJit(Common::PageTable* pa // Curated optimizations if (Settings::values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Auto) { config.unsafe_optimizations = true; -#if defined(_WIN32) || defined(__linux__) || defined(__ANDROID__) +#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun__) config.fastmem_pointer = std::nullopt; config.fastmem_exclusive_access = false; #endif diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.cpp b/src/core/arm/dynarmic/arm_dynarmic_64.cpp index 8d9f4e0ebc..0a63386c7f 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_64.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic_64.cpp @@ -354,7 +354,7 @@ std::shared_ptr ArmDynarmic64::MakeJit(Common::PageTable* pa // Curated optimizations if (Settings::values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Auto) { config.unsafe_optimizations = true; -#if defined(_WIN32) || defined(__linux__) || defined(__ANDROID__) +#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun__) config.fastmem_pointer = std::nullopt; config.fastmem_exclusive_access = false; #endif