diff --git a/src/common/settings.h b/src/common/settings.h index 07dba53aba..fefb2e555a 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -218,6 +218,8 @@ struct Values { Category::CpuDebug}; Setting cpuopt_ignore_memory_aborts{linkage, true, "cpuopt_ignore_memory_aborts", Category::CpuDebug}; + Setting cpuopt_multiblock_compilation{linkage, true, "cpuopt_multiblock_compilation", + Category::CpuDebug}; SwitchableSetting cpuopt_unsafe_unfuse_fma{linkage, true, "cpuopt_unsafe_unfuse_fma", Category::CpuUnsafe}; diff --git a/src/core/arm/dynarmic/dynarmic_settings.h b/src/core/arm/dynarmic/dynarmic_settings.h index 7a5be50b39..d31b179344 100644 --- a/src/core/arm/dynarmic/dynarmic_settings.h +++ b/src/core/arm/dynarmic/dynarmic_settings.h @@ -42,6 +42,9 @@ void ConfigureOptimizationSettings(Config& config) { if (!Settings::values.cpuopt_misc_ir) { config.optimizations &= ~Dynarmic::OptimizationFlag::MiscIROpt; } + if (!Settings::values.cpuopt_multiblock_compilation) { + config.optimizations &= ~Dynarmic::OptimizationFlag::MultiBlockCompilation; + } if (!Settings::values.cpuopt_reduce_misalign_checks) { config.only_detect_misalignment_via_page_table_on_page_boundary = false; }