From d6592c7142912be33940cde72cca6d3613baa883 Mon Sep 17 00:00:00 2001 From: MerryMage Date: Tue, 4 May 2021 14:29:58 +0100 Subject: [PATCH] Remove ExceptionalExit hack --- include/dynarmic/A32/a32.h | 7 ------- include/dynarmic/A64/a64.h | 7 ------- src/backend/x64/a32_interface.cpp | 14 -------------- src/backend/x64/a64_interface.cpp | 14 -------------- 4 files changed, 42 deletions(-) diff --git a/include/dynarmic/A32/a32.h b/include/dynarmic/A32/a32.h index b9b4d11e..2066b1a2 100644 --- a/include/dynarmic/A32/a32.h +++ b/include/dynarmic/A32/a32.h @@ -59,13 +59,6 @@ public: */ void HaltExecution(); - /** - * HACK: - * Exits execution from a callback, the callback must rewind the stack or - * never return to dynarmic from it's current stack. - */ - void ExceptionalExit(); - /// View and modify registers. std::array& Regs(); const std::array& Regs() const; diff --git a/include/dynarmic/A64/a64.h b/include/dynarmic/A64/a64.h index 996ddbaf..f51f6fad 100644 --- a/include/dynarmic/A64/a64.h +++ b/include/dynarmic/A64/a64.h @@ -60,13 +60,6 @@ public: */ void HaltExecution(); - /** - * HACK: - * Exits execution from a callback, the callback must rewind the stack or - * never return to dynarmic from it's current stack. - */ - void ExceptionalExit(); - /// Read Stack Pointer std::uint64_t GetSP() const; /// Modify Stack Pointer diff --git a/src/backend/x64/a32_interface.cpp b/src/backend/x64/a32_interface.cpp index 4b71f6c6..e5fa3912 100644 --- a/src/backend/x64/a32_interface.cpp +++ b/src/backend/x64/a32_interface.cpp @@ -89,15 +89,6 @@ struct Jit::Impl { block_of_code.StepCode(&jit_state, GetCurrentSingleStep()); } - void ExceptionalExit() { - ClearExclusiveState(); - if (!conf.wall_clock_cntpct) { - const s64 ticks = jit_state.cycles_to_run - jit_state.cycles_remaining; - conf.callbacks->AddTicks(ticks); - } - PerformCacheInvalidation(); - } - void ClearExclusiveState() { jit_state.exclusive_state = 0; } @@ -233,11 +224,6 @@ void Jit::HaltExecution() { impl->jit_state.halt_requested = true; } -void Jit::ExceptionalExit() { - impl->ExceptionalExit(); - is_executing = false; -} - void Jit::ClearExclusiveState() { impl->ClearExclusiveState(); } diff --git a/src/backend/x64/a64_interface.cpp b/src/backend/x64/a64_interface.cpp index 48353a49..0c4b7fbd 100644 --- a/src/backend/x64/a64_interface.cpp +++ b/src/backend/x64/a64_interface.cpp @@ -87,16 +87,6 @@ public: PerformRequestedCacheInvalidation(); } - void ExceptionalExit() { - ClearExclusiveState(); - if (!conf.wall_clock_cntpct) { - const s64 ticks = jit_state.cycles_to_run - jit_state.cycles_remaining; - conf.callbacks->AddTicks(ticks); - } - PerformRequestedCacheInvalidation(); - is_executing = false; - } - void ClearCache() { invalidate_entire_cache = true; RequestCacheInvalidation(); @@ -325,10 +315,6 @@ void Jit::HaltExecution() { impl->HaltExecution(); } -void Jit::ExceptionalExit() { - impl->ExceptionalExit(); -} - u64 Jit::GetSP() const { return impl->GetSP(); }