diff options
author | Morph <39850852+Morph1984@users.noreply.github.com> | 2022-06-01 20:46:10 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-01 20:46:10 -0400 |
commit | 858f8ac6d9f39a1be95dc2f5e83c752b725136ad (patch) | |
tree | 26d5733fe69193e76402bad78b1a3a8b791b6095 /src/core/arm/arm_interface.h | |
parent | af418eb6662bcb859e7922105d9ad6ba50dec3ac (diff) | |
parent | 989d4a7a41f449af0ea09e34bee331a3a3ac8170 (diff) |
Merge pull request #8402 from liamwhite/better-step
core/debugger: Improved stepping mechanism and misc fixes
Diffstat (limited to 'src/core/arm/arm_interface.h')
-rw-r--r-- | src/core/arm/arm_interface.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/core/arm/arm_interface.h b/src/core/arm/arm_interface.h index 7842c626bb..66f6107e9f 100644 --- a/src/core/arm/arm_interface.h +++ b/src/core/arm/arm_interface.h @@ -6,6 +6,9 @@ #include <array> #include <vector> + +#include <dynarmic/interface/halt_reason.h> + #include "common/common_funcs.h" #include "common/common_types.h" #include "core/hardware_properties.h" @@ -64,7 +67,7 @@ public: static_assert(sizeof(ThreadContext64) == 0x320); /// Runs the CPU until an event happens - virtual void Run() = 0; + void Run(); /// Clear all instruction cache virtual void ClearInstructionCache() = 0; @@ -191,7 +194,10 @@ public: void LogBacktrace() const; - bool ShouldStep() const; + static constexpr Dynarmic::HaltReason step_thread = Dynarmic::HaltReason::Step; + static constexpr Dynarmic::HaltReason break_loop = Dynarmic::HaltReason::UserDefined2; + static constexpr Dynarmic::HaltReason svc_call = Dynarmic::HaltReason::UserDefined3; + static constexpr Dynarmic::HaltReason breakpoint = Dynarmic::HaltReason::UserDefined4; protected: /// System context that this ARM interface is running under. @@ -200,6 +206,10 @@ protected: bool uses_wall_clock; static void SymbolicateBacktrace(Core::System& system, std::vector<BacktraceEntry>& out); + + virtual Dynarmic::HaltReason RunJit() = 0; + virtual Dynarmic::HaltReason StepJit() = 0; + virtual u32 GetSvcNumber() const = 0; }; } // namespace Core |