summaryrefslogtreecommitdiff
path: root/src/core/arm
diff options
context:
space:
mode:
authorGravatar lat9nq2021-05-15 20:46:48 -0400
committerGravatar lat9nq2021-05-15 20:46:48 -0400
commite169fdad4f89675f5b56a3ca5004d593792426a0 (patch)
treee52425c637fd16bacb4ee72fa18922c10b0fc5b9 /src/core/arm
parentMerge pull request #6300 from Morph1984/mbedtls (diff)
downloadyuzu-e169fdad4f89675f5b56a3ca5004d593792426a0.tar.gz
yuzu-e169fdad4f89675f5b56a3ca5004d593792426a0.tar.xz
yuzu-e169fdad4f89675f5b56a3ca5004d593792426a0.zip
general: Make CPU accuracy and related a Settings::Setting
Required to make CPU accuracy and unsafe settings available to use as a per-game setting.
Diffstat (limited to 'src/core/arm')
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_32.cpp10
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_64.cpp10
2 files changed, 10 insertions, 10 deletions
diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.cpp b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
index 42a37e84f..3535a3d11 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_32.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
@@ -142,7 +142,7 @@ std::shared_ptr<Dynarmic::A32::Jit> ARM_Dynarmic_32::MakeJit(Common::PageTable*
142 config.far_code_offset = 256 * 1024 * 1024; 142 config.far_code_offset = 256 * 1024 * 1024;
143 143
144 // Safe optimizations 144 // Safe optimizations
145 if (Settings::values.cpu_accuracy == Settings::CPUAccuracy::DebugMode) { 145 if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::DebugMode) {
146 if (!Settings::values.cpuopt_page_tables) { 146 if (!Settings::values.cpuopt_page_tables) {
147 config.page_table = nullptr; 147 config.page_table = nullptr;
148 } 148 }
@@ -170,15 +170,15 @@ std::shared_ptr<Dynarmic::A32::Jit> ARM_Dynarmic_32::MakeJit(Common::PageTable*
170 } 170 }
171 171
172 // Unsafe optimizations 172 // Unsafe optimizations
173 if (Settings::values.cpu_accuracy == Settings::CPUAccuracy::Unsafe) { 173 if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::Unsafe) {
174 config.unsafe_optimizations = true; 174 config.unsafe_optimizations = true;
175 if (Settings::values.cpuopt_unsafe_unfuse_fma) { 175 if (Settings::values.cpuopt_unsafe_unfuse_fma.GetValue()) {
176 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA; 176 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
177 } 177 }
178 if (Settings::values.cpuopt_unsafe_reduce_fp_error) { 178 if (Settings::values.cpuopt_unsafe_reduce_fp_error.GetValue()) {
179 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_ReducedErrorFP; 179 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_ReducedErrorFP;
180 } 180 }
181 if (Settings::values.cpuopt_unsafe_inaccurate_nan) { 181 if (Settings::values.cpuopt_unsafe_inaccurate_nan.GetValue()) {
182 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN; 182 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
183 } 183 }
184 } 184 }
diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.cpp b/src/core/arm/dynarmic/arm_dynarmic_64.cpp
index 653bb7a77..7e1f654db 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_64.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_64.cpp
@@ -182,7 +182,7 @@ std::shared_ptr<Dynarmic::A64::Jit> ARM_Dynarmic_64::MakeJit(Common::PageTable*
182 config.far_code_offset = 256 * 1024 * 1024; 182 config.far_code_offset = 256 * 1024 * 1024;
183 183
184 // Safe optimizations 184 // Safe optimizations
185 if (Settings::values.cpu_accuracy == Settings::CPUAccuracy::DebugMode) { 185 if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::DebugMode) {
186 if (!Settings::values.cpuopt_page_tables) { 186 if (!Settings::values.cpuopt_page_tables) {
187 config.page_table = nullptr; 187 config.page_table = nullptr;
188 } 188 }
@@ -210,15 +210,15 @@ std::shared_ptr<Dynarmic::A64::Jit> ARM_Dynarmic_64::MakeJit(Common::PageTable*
210 } 210 }
211 211
212 // Unsafe optimizations 212 // Unsafe optimizations
213 if (Settings::values.cpu_accuracy == Settings::CPUAccuracy::Unsafe) { 213 if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::Unsafe) {
214 config.unsafe_optimizations = true; 214 config.unsafe_optimizations = true;
215 if (Settings::values.cpuopt_unsafe_unfuse_fma) { 215 if (Settings::values.cpuopt_unsafe_unfuse_fma.GetValue()) {
216 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA; 216 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
217 } 217 }
218 if (Settings::values.cpuopt_unsafe_reduce_fp_error) { 218 if (Settings::values.cpuopt_unsafe_reduce_fp_error.GetValue()) {
219 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_ReducedErrorFP; 219 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_ReducedErrorFP;
220 } 220 }
221 if (Settings::values.cpuopt_unsafe_inaccurate_nan) { 221 if (Settings::values.cpuopt_unsafe_inaccurate_nan.GetValue()) {
222 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN; 222 config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
223 } 223 }
224 } 224 }