| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- // Copyright 2017 Citra Emulator Project
- // Licensed under GPLv2 or any later version
- // Refer to the license.txt file included.
- #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;
- };
- } // namespace Core
|