diff options
Diffstat (limited to 'externals/dynarmic/src/dynarmic/backend/arm64/fpsr_manager.h')
-rw-r--r-- | externals/dynarmic/src/dynarmic/backend/arm64/fpsr_manager.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/externals/dynarmic/src/dynarmic/backend/arm64/fpsr_manager.h b/externals/dynarmic/src/dynarmic/backend/arm64/fpsr_manager.h new file mode 100644 index 0000000000..e003522dde --- /dev/null +++ b/externals/dynarmic/src/dynarmic/backend/arm64/fpsr_manager.h @@ -0,0 +1,30 @@ +/* This file is part of the dynarmic project. + * Copyright (c) 2022 MerryMage + * SPDX-License-Identifier: 0BSD + */ + +#pragma once + +#include <mcl/stdint.hpp> + +namespace oaknut { +struct CodeGenerator; +} // namespace oaknut + +namespace Dynarmic::Backend::Arm64 { + +class FpsrManager { +public: + explicit FpsrManager(oaknut::CodeGenerator& code, size_t state_fpsr_offset); + + void Spill(); + void Load(); + void Overwrite() { fpsr_loaded = false; } + +private: + oaknut::CodeGenerator& code; + size_t state_fpsr_offset; + bool fpsr_loaded = false; +}; + +} // namespace Dynarmic::Backend::Arm64 |