arm/dynarmic: Initial implementation for instruction tick counts
This commit is contained in:
parent
2238e6c3ef
commit
f298278f37
4 changed files with 35 additions and 0 deletions
|
@ -492,6 +492,8 @@ if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64)
|
|||
arm/dynarmic/arm_dynarmic_cp15.h
|
||||
arm/dynarmic/arm_exclusive_monitor.cpp
|
||||
arm/dynarmic/arm_exclusive_monitor.h
|
||||
arm/dynarmic/arm_tick_counts.cpp
|
||||
arm/dynarmic/arm_tick_counts.h
|
||||
)
|
||||
target_link_libraries(core PRIVATE dynarmic)
|
||||
endif()
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "core/arm/dynarmic/arm_dynarmic.h"
|
||||
#include "core/arm/dynarmic/arm_dynarmic_cp15.h"
|
||||
#include "core/arm/dynarmic/arm_exclusive_monitor.h"
|
||||
#include "core/arm/dynarmic/arm_tick_counts.h"
|
||||
#include "core/core.h"
|
||||
#include "core/core_timing.h"
|
||||
#include "core/gdbstub/gdbstub.h"
|
||||
|
@ -161,6 +162,9 @@ public:
|
|||
s64 ticks = parent.GetTimer().GetDowncount();
|
||||
return static_cast<u64>(ticks <= 0 ? 0 : ticks);
|
||||
}
|
||||
std::uint64_t GetTicksForCode(bool is_thumb, VAddr, std::uint32_t instruction) override {
|
||||
return Core::TicksForInstruction(is_thumb, instruction);
|
||||
}
|
||||
|
||||
ARM_Dynarmic& parent;
|
||||
Kernel::SVCContext svc_context;
|
||||
|
|
16
src/core/arm/dynarmic/arm_tick_counts.cpp
Normal file
16
src/core/arm/dynarmic/arm_tick_counts.cpp
Normal file
|
@ -0,0 +1,16 @@
|
|||
// Copyright 2022 Citra Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include "common/common_types.h"
|
||||
#include "core/arm/dynarmic/arm_tick_counts.h"
|
||||
|
||||
namespace Core {
|
||||
|
||||
u64 TicksForInstruction(bool is_thumb, u32 instruction) {
|
||||
(void)is_thumb;
|
||||
(void)instruction;
|
||||
return 1;
|
||||
}
|
||||
|
||||
} // namespace Core
|
13
src/core/arm/dynarmic/arm_tick_counts.h
Normal file
13
src/core/arm/dynarmic/arm_tick_counts.h
Normal file
|
@ -0,0 +1,13 @@
|
|||
// Copyright 2022 Citra Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "common/common_types.h"
|
||||
|
||||
namespace Core {
|
||||
|
||||
u64 TicksForInstruction(bool is_thumb, u32 instruction);
|
||||
|
||||
} // namespace Core
|
Loading…
Reference in a new issue