diff options
author | bunnei <bunneidev@gmail.com> | 2023-06-13 18:45:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-13 18:45:09 +0200 |
commit | 14d25e2c75454fbdcfa3408257d3b9092e284973 (patch) | |
tree | ea205f4376325f5c31b62072bd57bf8ce27c1a28 /src/core/arm/dynarmic/dynarmic_cp15.h | |
parent | Merge pull request #10746 from bunnei/update-android-settings (diff) | |
parent | core: decouple ARM interface from Dynarmic (diff) | |
download | yuzu-14d25e2c75454fbdcfa3408257d3b9092e284973.tar yuzu-14d25e2c75454fbdcfa3408257d3b9092e284973.tar.gz yuzu-14d25e2c75454fbdcfa3408257d3b9092e284973.tar.bz2 yuzu-14d25e2c75454fbdcfa3408257d3b9092e284973.tar.lz yuzu-14d25e2c75454fbdcfa3408257d3b9092e284973.tar.xz yuzu-14d25e2c75454fbdcfa3408257d3b9092e284973.tar.zst yuzu-14d25e2c75454fbdcfa3408257d3b9092e284973.zip |
Diffstat (limited to 'src/core/arm/dynarmic/dynarmic_cp15.h')
-rw-r--r-- | src/core/arm/dynarmic/dynarmic_cp15.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/core/arm/dynarmic/dynarmic_cp15.h b/src/core/arm/dynarmic/dynarmic_cp15.h new file mode 100644 index 000000000..d90b3e568 --- /dev/null +++ b/src/core/arm/dynarmic/dynarmic_cp15.h @@ -0,0 +1,42 @@ +// SPDX-FileCopyrightText: 2017 Citra Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include <optional> + +#include <dynarmic/interface/A32/coprocessor.h> +#include "common/common_types.h" + +namespace Core { + +class ARM_Dynarmic_32; + +class DynarmicCP15 final : public Dynarmic::A32::Coprocessor { +public: + using CoprocReg = Dynarmic::A32::CoprocReg; + + explicit DynarmicCP15(ARM_Dynarmic_32& parent_) : parent{parent_} {} + + std::optional<Callback> CompileInternalOperation(bool two, unsigned opc1, CoprocReg CRd, + CoprocReg CRn, CoprocReg CRm, + unsigned opc2) override; + CallbackOrAccessOneWord CompileSendOneWord(bool two, unsigned opc1, CoprocReg CRn, + CoprocReg CRm, unsigned opc2) override; + CallbackOrAccessTwoWords CompileSendTwoWords(bool two, unsigned opc, CoprocReg CRm) override; + CallbackOrAccessOneWord CompileGetOneWord(bool two, unsigned opc1, CoprocReg CRn, CoprocReg CRm, + unsigned opc2) override; + CallbackOrAccessTwoWords CompileGetTwoWords(bool two, unsigned opc, CoprocReg CRm) override; + std::optional<Callback> CompileLoadWords(bool two, bool long_transfer, CoprocReg CRd, + std::optional<u8> option) override; + std::optional<Callback> CompileStoreWords(bool two, bool long_transfer, CoprocReg CRd, + std::optional<u8> option) override; + + ARM_Dynarmic_32& parent; + u32 uprw = 0; + u32 uro = 0; + + friend class ARM_Dynarmic_32; +}; + +} // namespace Core |