Browse Source
Merge pull request #10747 from liamwhite/arm-interface-decouple
Merge pull request #10747 from liamwhite/arm-interface-decouple
core: decouple ARM interface from Dynarmicnce_cpp
committed by
GitHub
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-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// 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"
|
#include "core/memory.h"
|
||||
|
|
||||
namespace Core { |
namespace Core { |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue