summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/core/arm/dynarmic/arm_dynarmic.cpp b/src/core/arm/dynarmic/arm_dynarmic.cpp
index a9cb973df..a521aec7c 100644
--- a/src/core/arm/dynarmic/arm_dynarmic.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic.cpp
@@ -87,14 +87,21 @@ void ARM_Dynarmic::SetVFPReg(int index, u32 value) {
}
u32 ARM_Dynarmic::GetVFPSystemReg(VFPSystemRegister reg) const {
- // TODO(bunnei): ImplementMe
- UNIMPLEMENTED();
- return 0;
+ if (reg == VFP_FPSCR) {
+ return jit->Fpscr();
+ }
+
+ // Dynarmic does not implement and/or expose other VFP registers, fallback to interpreter state
+ return interpreter_state->VFP[reg];
}
void ARM_Dynarmic::SetVFPSystemReg(VFPSystemRegister reg, u32 value) {
- // TODO(bunnei): ImplementMe
- UNIMPLEMENTED();
+ if (reg == VFP_FPSCR) {
+ jit->SetFpscr(value);
+ }
+
+ // Dynarmic does not implement and/or expose other VFP registers, fallback to interpreter state
+ interpreter_state->VFP[reg] = value;
}
u32 ARM_Dynarmic::GetCPSR() const {