15 changed files with 189 additions and 172 deletions
-
9src/core/CMakeLists.txt
-
84src/core/arm/arm_interface.cpp
-
37src/core/arm/arm_interface.h
-
29src/core/arm/dynarmic/arm_dynarmic.h
-
64src/core/arm/dynarmic/arm_dynarmic_32.cpp
-
16src/core/arm/dynarmic/arm_dynarmic_32.h
-
64src/core/arm/dynarmic/arm_dynarmic_64.cpp
-
18src/core/arm/dynarmic/arm_dynarmic_64.h
-
2src/core/arm/dynarmic/dynarmic_cp15.cpp
-
0src/core/arm/dynarmic/dynarmic_cp15.h
-
2src/core/arm/dynarmic/dynarmic_exclusive_monitor.cpp
-
0src/core/arm/dynarmic/dynarmic_exclusive_monitor.h
-
2src/core/arm/exclusive_monitor.cpp
-
26src/core/core.cpp
-
8src/core/core.h
@ -0,0 +1,29 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project |
|||
// SPDX-License-Identifier: GPL-2.0-or-later |
|||
|
|||
#include <dynarmic/interface/halt_reason.h> |
|||
|
|||
#include "core/arm/arm_interface.h" |
|||
|
|||
namespace Core { |
|||
|
|||
constexpr Dynarmic::HaltReason StepThread = Dynarmic::HaltReason::Step; |
|||
constexpr Dynarmic::HaltReason DataAbort = Dynarmic::HaltReason::MemoryAbort; |
|||
constexpr Dynarmic::HaltReason BreakLoop = Dynarmic::HaltReason::UserDefined2; |
|||
constexpr Dynarmic::HaltReason SupervisorCall = Dynarmic::HaltReason::UserDefined3; |
|||
constexpr Dynarmic::HaltReason InstructionBreakpoint = Dynarmic::HaltReason::UserDefined4; |
|||
constexpr Dynarmic::HaltReason PrefetchAbort = Dynarmic::HaltReason::UserDefined6; |
|||
|
|||
constexpr HaltReason TranslateHaltReason(Dynarmic::HaltReason hr) { |
|||
static_assert(static_cast<u64>(HaltReason::StepThread) == static_cast<u64>(StepThread)); |
|||
static_assert(static_cast<u64>(HaltReason::DataAbort) == static_cast<u64>(DataAbort)); |
|||
static_assert(static_cast<u64>(HaltReason::BreakLoop) == static_cast<u64>(BreakLoop)); |
|||
static_assert(static_cast<u64>(HaltReason::SupervisorCall) == static_cast<u64>(SupervisorCall)); |
|||
static_assert(static_cast<u64>(HaltReason::InstructionBreakpoint) == |
|||
static_cast<u64>(InstructionBreakpoint)); |
|||
static_assert(static_cast<u64>(HaltReason::PrefetchAbort) == static_cast<u64>(PrefetchAbort)); |
|||
|
|||
return static_cast<HaltReason>(hr); |
|||
} |
|||
|
|||
} // namespace Core |
|||
@ -1,7 +1,7 @@ |
|||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
|||
|
|||
#include "core/arm/dynarmic/arm_exclusive_monitor.h"
|
|||
#include "core/arm/dynarmic/dynarmic_exclusive_monitor.h"
|
|||
#include "core/memory.h"
|
|||
|
|||
namespace Core { |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue