diff options
author | Mat M <mathew1800@gmail.com> | 2020-04-20 20:19:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-20 20:19:18 +0200 |
commit | 200f69d2ffa11bb902c2d9cabb49027f4781fe11 (patch) | |
tree | 028ddae62e98d6498ecd9363f020717cf22b05ea /src/core | |
parent | Merge pull request #3741 from FearlessTobi/silence-warnings (diff) | |
parent | dynarmic: Add option to disable CPU JIT optimizations (diff) | |
download | yuzu-200f69d2ffa11bb902c2d9cabb49027f4781fe11.tar yuzu-200f69d2ffa11bb902c2d9cabb49027f4781fe11.tar.gz yuzu-200f69d2ffa11bb902c2d9cabb49027f4781fe11.tar.bz2 yuzu-200f69d2ffa11bb902c2d9cabb49027f4781fe11.tar.lz yuzu-200f69d2ffa11bb902c2d9cabb49027f4781fe11.tar.xz yuzu-200f69d2ffa11bb902c2d9cabb49027f4781fe11.tar.zst yuzu-200f69d2ffa11bb902c2d9cabb49027f4781fe11.zip |
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/arm/dynarmic/arm_dynarmic_64.cpp | 10 | ||||
-rw-r--r-- | src/core/settings.h | 1 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.cpp b/src/core/arm/dynarmic/arm_dynarmic_64.cpp index 9add5d363..65cbfe5e6 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_64.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic_64.cpp @@ -20,6 +20,7 @@ #include "core/hle/kernel/scheduler.h" #include "core/hle/kernel/svc.h" #include "core/memory.h" +#include "core/settings.h" namespace Core { @@ -144,6 +145,8 @@ std::shared_ptr<Dynarmic::A64::Jit> ARM_Dynarmic_64::MakeJit(Common::PageTable& config.page_table_address_space_bits = address_space_bits; config.silently_mirror_page_table = false; config.absolute_offset_page_table = true; + config.detect_misaligned_access_via_page_table = 16 | 32 | 64 | 128; + config.only_detect_misalignment_via_page_table_on_page_boundary = true; // Multi-process state config.processor_id = core_index; @@ -159,8 +162,11 @@ std::shared_ptr<Dynarmic::A64::Jit> ARM_Dynarmic_64::MakeJit(Common::PageTable& // Unpredictable instructions config.define_unpredictable_behaviour = true; - config.detect_misaligned_access_via_page_table = 16 | 32 | 64 | 128; - config.only_detect_misalignment_via_page_table_on_page_boundary = true; + // Optimizations + if (Settings::values.disable_cpu_opt) { + config.enable_optimizations = false; + config.enable_fast_dispatch = false; + } return std::make_shared<Dynarmic::A64::Jit>(config); } diff --git a/src/core/settings.h b/src/core/settings.h index 79ec01731..c73d1c596 100644 --- a/src/core/settings.h +++ b/src/core/settings.h @@ -464,6 +464,7 @@ struct Values { bool dump_nso; bool reporting_services; bool quest_flag; + bool disable_cpu_opt; // BCAT std::string bcat_backend; |