arm: Implement native code execution backend

This commit is contained in:
Liam 2023-11-17 23:44:53 +02:00 committed by t895
parent 4838837620
commit 9f91ba1f73
31 changed files with 1803 additions and 51 deletions

View file

@ -112,6 +112,7 @@ private:
std::array<KThread*, Core::Hardware::NUM_CPU_CORES> m_pinned_threads{};
std::array<DebugWatchpoint, Core::Hardware::NUM_WATCHPOINTS> m_watchpoints{};
std::map<KProcessAddress, u64> m_debug_page_refcounts{};
std::unordered_map<u64, u64> m_post_handlers{};
std::atomic<s64> m_cpu_time{};
std::atomic<s64> m_num_process_switches{};
std::atomic<s64> m_num_thread_switches{};
@ -467,6 +468,14 @@ public:
static void Switch(KProcess* cur_process, KProcess* next_process);
std::unordered_map<u64, u64>& GetPostHandlers() noexcept {
return m_post_handlers;
}
KernelCore& GetKernel() noexcept {
return m_kernel;
}
public:
// Attempts to insert a watchpoint into a free slot. Returns false if none are available.
bool InsertWatchpoint(KProcessAddress addr, u64 size, DebugWatchpointType type);