From 0fbd7752c3a946f6aade3a38c5594a724b060479 Mon Sep 17 00:00:00 2001
From: MerryMage <MerryMage@users.noreply.github.com>
Date: Fri, 2 Apr 2021 18:08:39 +0100
Subject: [PATCH] arm_dynarmic: Increase size of code cache

---
 externals/dynarmic                        | 2 +-
 src/core/arm/dynarmic/arm_dynarmic_32.cpp | 4 ++++
 src/core/arm/dynarmic/arm_dynarmic_64.cpp | 4 ++++
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/externals/dynarmic b/externals/dynarmic
index d0372aebaf..c788bcdf17 160000
--- a/externals/dynarmic
+++ b/externals/dynarmic
@@ -1 +1 @@
-Subproject commit d0372aebafcb02e6857ba1fc8e01bfadfcf30f92
+Subproject commit c788bcdf17e6bc1d1a1dd315106b952013f5ecb8
diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.cpp b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
index 4b2a62b4f4..08d8891356 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_32.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
@@ -137,6 +137,10 @@ std::shared_ptr<Dynarmic::A32::Jit> ARM_Dynarmic_32::MakeJit(Common::PageTable*
     // Timing
     config.wall_clock_cntpct = uses_wall_clock;
 
+    // Code cache size
+    config.code_cache_size = 512 * 1024 * 1024;
+    config.far_code_offset = 256 * 1024 * 1024;
+
     // Safe optimizations
     if (Settings::values.cpu_accuracy == Settings::CPUAccuracy::DebugMode) {
         if (!Settings::values.cpuopt_page_tables) {
diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.cpp b/src/core/arm/dynarmic/arm_dynarmic_64.cpp
index 083c2bdee0..e12e50658f 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_64.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_64.cpp
@@ -177,6 +177,10 @@ std::shared_ptr<Dynarmic::A64::Jit> ARM_Dynarmic_64::MakeJit(Common::PageTable*
     // Timing
     config.wall_clock_cntpct = uses_wall_clock;
 
+    // Code cache size
+    config.code_cache_size = 512 * 1024 * 1024;
+    config.far_code_offset = 256 * 1024 * 1024;
+
     // Safe optimizations
     if (Settings::values.cpu_accuracy == Settings::CPUAccuracy::DebugMode) {
         if (!Settings::values.cpuopt_page_tables) {