From 0e98fb3780ca59de31e0df729101e5bf37e8d36f Mon Sep 17 00:00:00 2001 From: emufan4568 Date: Fri, 15 Jul 2022 20:06:51 +0300 Subject: [PATCH] dynarmic: Update dynarmic to upstream * Citra's fork of dynarmic is getting old quite fast and accumulating technical debt which gets harder and harder to account for as time goes on. So to have the access to the latest and greatest features we need to use the upstream version which yuzu also uses. This requires some extra patches which are contained in the following commits. --- .gitmodules | 2 +- externals/dynarmic | 2 +- src/core/arm/dynarmic/arm_dynarmic.cpp | 8 ++++---- src/core/arm/dynarmic/arm_dynarmic.h | 2 +- src/core/arm/dynarmic/arm_dynarmic_cp15.h | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.gitmodules b/.gitmodules index cec5bad83..aae59d46e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -12,7 +12,7 @@ url = https://github.com/philsquared/Catch.git [submodule "dynarmic"] path = externals/dynarmic - url = https://github.com/citra-emu/dynarmic.git + url = https://github.com/merryhime/dynarmic.git [submodule "xbyak"] path = externals/xbyak url = https://github.com/herumi/xbyak.git diff --git a/externals/dynarmic b/externals/dynarmic index af0d4a7c1..da5d06c32 160000 --- a/externals/dynarmic +++ b/externals/dynarmic @@ -1 +1 @@ -Subproject commit af0d4a7c18ee90d544866a8cf24e6a0d48d3edc4 +Subproject commit da5d06c32ac0b9cb257dda22e5a1ac9a55ee92c2 diff --git a/src/core/arm/dynarmic/arm_dynarmic.cpp b/src/core/arm/dynarmic/arm_dynarmic.cpp index 3bfd27b02..dcd3f6e5b 100644 --- a/src/core/arm/dynarmic/arm_dynarmic.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic.cpp @@ -3,8 +3,8 @@ // Refer to the license.txt file included. #include -#include -#include +#include +#include #include "common/assert.h" #include "common/microprofile.h" #include "core/arm/dynarmic/arm_dynarmic.h" @@ -103,7 +103,7 @@ public: void InterpreterFallback(VAddr pc, std::size_t num_instructions) override { // Should never happen. UNREACHABLE_MSG("InterpeterFallback reached with pc = 0x{:08x}, code = 0x{:08x}, num = {}", - pc, MemoryReadCode(pc), num_instructions); + pc, MemoryReadCode(pc).value(), num_instructions); } void CallSVC(std::uint32_t swi) override { @@ -133,7 +133,7 @@ public: return; } ASSERT_MSG(false, "ExceptionRaised(exception = {}, pc = {:08X}, code = {:08X})", exception, - pc, MemoryReadCode(pc)); + pc, MemoryReadCode(pc).value()); } void AddTicks(std::uint64_t ticks) override { diff --git a/src/core/arm/dynarmic/arm_dynarmic.h b/src/core/arm/dynarmic/arm_dynarmic.h index 7575e9a2a..e8637b1cf 100644 --- a/src/core/arm/dynarmic/arm_dynarmic.h +++ b/src/core/arm/dynarmic/arm_dynarmic.h @@ -6,7 +6,7 @@ #include #include -#include +#include #include "common/common_types.h" #include "core/arm/arm_interface.h" #include "core/arm/dynarmic/arm_dynarmic_cp15.h" diff --git a/src/core/arm/dynarmic/arm_dynarmic_cp15.h b/src/core/arm/dynarmic/arm_dynarmic_cp15.h index 30ab08ac8..9ebe9c644 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_cp15.h +++ b/src/core/arm/dynarmic/arm_dynarmic_cp15.h @@ -5,7 +5,7 @@ #pragma once #include -#include +#include #include "common/common_types.h" struct CP15State {