summaryrefslogtreecommitdiffstats
path: root/src/core/arm/dynarmic/arm_dynarmic_32.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2022-08-08 02:48:55 +0200
committerGitHub <noreply@github.com>2022-08-08 02:48:55 +0200
commit01bb5d5c4d10424145739e4dd50c0a92547ca240 (patch)
tree403f5ae1f6ea1d4555a40dbea0f2c44183292aba /src/core/arm/dynarmic/arm_dynarmic_32.cpp
parentMerge pull request #8240 from liamwhite/count-cycles (diff)
parentkernel: unlayer CPU interrupt handling (diff)
downloadyuzu-01bb5d5c4d10424145739e4dd50c0a92547ca240.tar
yuzu-01bb5d5c4d10424145739e4dd50c0a92547ca240.tar.gz
yuzu-01bb5d5c4d10424145739e4dd50c0a92547ca240.tar.bz2
yuzu-01bb5d5c4d10424145739e4dd50c0a92547ca240.tar.lz
yuzu-01bb5d5c4d10424145739e4dd50c0a92547ca240.tar.xz
yuzu-01bb5d5c4d10424145739e4dd50c0a92547ca240.tar.zst
yuzu-01bb5d5c4d10424145739e4dd50c0a92547ca240.zip
Diffstat (limited to 'src/core/arm/dynarmic/arm_dynarmic_32.cpp')
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_32.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.cpp b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
index 99fab6384..2e0e16b6e 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_32.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
@@ -11,7 +11,6 @@
#include "common/logging/log.h"
#include "common/page_table.h"
#include "common/settings.h"
-#include "core/arm/cpu_interrupt_handler.h"
#include "core/arm/dynarmic/arm_dynarmic_32.h"
#include "core/arm/dynarmic/arm_dynarmic_cp15.h"
#include "core/arm/dynarmic/arm_exclusive_monitor.h"
@@ -318,11 +317,9 @@ void ARM_Dynarmic_32::RewindBreakpointInstruction() {
LoadContext(breakpoint_context);
}
-ARM_Dynarmic_32::ARM_Dynarmic_32(System& system_, CPUInterrupts& interrupt_handlers_,
- bool uses_wall_clock_, ExclusiveMonitor& exclusive_monitor_,
- std::size_t core_index_)
- : ARM_Interface{system_, interrupt_handlers_, uses_wall_clock_},
- cb(std::make_unique<DynarmicCallbacks32>(*this)),
+ARM_Dynarmic_32::ARM_Dynarmic_32(System& system_, bool uses_wall_clock_,
+ ExclusiveMonitor& exclusive_monitor_, std::size_t core_index_)
+ : ARM_Interface{system_, uses_wall_clock_}, cb(std::make_unique<DynarmicCallbacks32>(*this)),
cp15(std::make_shared<DynarmicCP15>(*this)), core_index{core_index_},
exclusive_monitor{dynamic_cast<DynarmicExclusiveMonitor&>(exclusive_monitor_)},
null_jit{MakeJit(nullptr)}, jit{null_jit.get()} {}
@@ -401,6 +398,10 @@ void ARM_Dynarmic_32::SignalInterrupt() {
jit.load()->HaltExecution(break_loop);
}
+void ARM_Dynarmic_32::ClearInterrupt() {
+ jit.load()->ClearHalt(break_loop);
+}
+
void ARM_Dynarmic_32::ClearInstructionCache() {
jit.load()->ClearCache();
}