early-access version 1475
This commit is contained in:
23
externals/dynarmic/include/dynarmic/A32/arch_version.h
vendored
Executable file
23
externals/dynarmic/include/dynarmic/A32/arch_version.h
vendored
Executable file
@@ -0,0 +1,23 @@
|
||||
/* This file is part of the dynarmic project.
|
||||
* Copyright (c) 2020 MerryMage
|
||||
* SPDX-License-Identifier: 0BSD
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
namespace Dynarmic {
|
||||
namespace A32 {
|
||||
|
||||
enum class ArchVersion {
|
||||
v3,
|
||||
v4,
|
||||
v4T,
|
||||
v5TE,
|
||||
v6K,
|
||||
v6T2,
|
||||
v7,
|
||||
v8,
|
||||
};
|
||||
|
||||
} // namespace A32
|
||||
} // namespace Dynarmic
|
@@ -10,6 +10,7 @@
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
|
||||
#include <dynarmic/A32/arch_version.h>
|
||||
#include <dynarmic/optimization_flags.h>
|
||||
|
||||
namespace Dynarmic {
|
||||
@@ -105,6 +106,10 @@ struct UserConfig {
|
||||
size_t processor_id = 0;
|
||||
ExclusiveMonitor* global_monitor = nullptr;
|
||||
|
||||
/// Select the architecture version to use.
|
||||
/// There are minor behavioural differences between versions.
|
||||
ArchVersion arch_version = ArchVersion::v8;
|
||||
|
||||
/// This selects other optimizations than can't otherwise be disabled by setting other
|
||||
/// configuration options. This includes:
|
||||
/// - IR optimizations
|
||||
|
10
externals/dynarmic/include/dynarmic/A64/config.h
vendored
10
externals/dynarmic/include/dynarmic/A64/config.h
vendored
@@ -68,6 +68,15 @@ enum class DataCacheOperation {
|
||||
ZeroByVA,
|
||||
};
|
||||
|
||||
enum class InstructionCacheOperation {
|
||||
/// IC IVAU
|
||||
InvalidateByVAToPoU,
|
||||
/// IC IALLU
|
||||
InvalidateAllToPoU,
|
||||
/// IC IALLUIS
|
||||
InvalidateAllToPoUInnerSharable
|
||||
};
|
||||
|
||||
struct UserCallbacks {
|
||||
virtual ~UserCallbacks() = default;
|
||||
|
||||
@@ -110,6 +119,7 @@ struct UserCallbacks {
|
||||
|
||||
virtual void ExceptionRaised(VAddr pc, Exception exception) = 0;
|
||||
virtual void DataCacheOperationRaised(DataCacheOperation /*op*/, VAddr /*value*/) {}
|
||||
virtual void InstructionCacheOperationRaised(InstructionCacheOperation /*op*/, VAddr /*value*/) {}
|
||||
virtual void InstructionSynchronizationBarrierRaised() {}
|
||||
|
||||
// Timing-related callbacks
|
||||
|
Reference in New Issue
Block a user