Просмотр исходного кода

arm_dynarmic: Implement GetVFPSystemReg/SetVFPSystemReg.

bunnei 9 лет назад
Родитель
Сommit
1b95f61d82
1 измененных файлов с 12 добавлено и 5 удалено
  1. 12 5
      src/core/arm/dynarmic/arm_dynarmic.cpp

+ 12 - 5
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 {
 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) {
 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 {
 u32 ARM_Dynarmic::GetCPSR() const {