summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Lioncash2015-06-13 15:05:51 -0400
committerGravatar Lioncash2015-06-13 15:05:51 -0400
commit54e69b89b9c324c00a9acdb024603c6f1d389141 (patch)
tree0274e47441859cff0f114a9a1adafea9a13d4696 /src
parentMerge pull request #856 from lioncash/vfp (diff)
parentvfp: Handle accesses to the VFP media feature registers (diff)
downloadyuzu-54e69b89b9c324c00a9acdb024603c6f1d389141.tar.gz
yuzu-54e69b89b9c324c00a9acdb024603c6f1d389141.tar.xz
yuzu-54e69b89b9c324c00a9acdb024603c6f1d389141.zip
Merge pull request #857 from lioncash/vfp
vfp: Handle accesses to the VFP media feature registers
Diffstat (limited to 'src')
-rw-r--r--src/core/arm/skyeye_common/arm_regformat.h2
-rw-r--r--src/core/arm/skyeye_common/vfp/vfp.cpp4
-rw-r--r--src/core/arm/skyeye_common/vfp/vfpinstr.cpp6
3 files changed, 8 insertions, 4 deletions
diff --git a/src/core/arm/skyeye_common/arm_regformat.h b/src/core/arm/skyeye_common/arm_regformat.h
index 6c89774eb..a92effbb4 100644
--- a/src/core/arm/skyeye_common/arm_regformat.h
+++ b/src/core/arm/skyeye_common/arm_regformat.h
@@ -59,6 +59,8 @@ enum {
59 VFP_FPSID, 59 VFP_FPSID,
60 VFP_FPSCR, 60 VFP_FPSCR,
61 VFP_FPEXC, 61 VFP_FPEXC,
62 VFP_MVFR0,
63 VFP_MVFR1,
62 64
63 // Not an actual register. 65 // Not an actual register.
64 // All VFP system registers should be defined above this. 66 // All VFP system registers should be defined above this.
diff --git a/src/core/arm/skyeye_common/vfp/vfp.cpp b/src/core/arm/skyeye_common/vfp/vfp.cpp
index b88d47750..571d6c2f2 100644
--- a/src/core/arm/skyeye_common/vfp/vfp.cpp
+++ b/src/core/arm/skyeye_common/vfp/vfp.cpp
@@ -33,6 +33,10 @@ unsigned VFPInit(ARMul_State* state)
33 state->VFP[VFP_FPEXC] = 0; 33 state->VFP[VFP_FPEXC] = 0;
34 state->VFP[VFP_FPSCR] = 0; 34 state->VFP[VFP_FPSCR] = 0;
35 35
36 // ARM11 MPCore feature register values.
37 state->VFP[VFP_MVFR0] = 0x11111111;
38 state->VFP[VFP_MVFR1] = 0;
39
36 return 0; 40 return 0;
37} 41}
38 42
diff --git a/src/core/arm/skyeye_common/vfp/vfpinstr.cpp b/src/core/arm/skyeye_common/vfp/vfpinstr.cpp
index d4060b791..67fe63aa4 100644
--- a/src/core/arm/skyeye_common/vfp/vfpinstr.cpp
+++ b/src/core/arm/skyeye_common/vfp/vfpinstr.cpp
@@ -1141,12 +1141,10 @@ VMRS_INST:
1141 cpu->Reg[inst_cream->Rt] = cpu->VFP[VFP_FPSID]; 1141 cpu->Reg[inst_cream->Rt] = cpu->VFP[VFP_FPSID];
1142 break; 1142 break;
1143 case 6: 1143 case 6:
1144 /* MVFR1, VFPv3 only ? */ 1144 cpu->Reg[inst_cream->Rt] = cpu->VFP[VFP_MVFR1];
1145 LOG_TRACE(Core_ARM11, "\tr%d <= MVFR1 unimplemented\n", inst_cream->Rt);
1146 break; 1145 break;
1147 case 7: 1146 case 7:
1148 /* MVFR0, VFPv3 only? */ 1147 cpu->Reg[inst_cream->Rt] = cpu->VFP[VFP_MVFR0];
1149 LOG_TRACE(Core_ARM11, "\tr%d <= MVFR0 unimplemented\n", inst_cream->Rt);
1150 break; 1148 break;
1151 case 8: 1149 case 8:
1152 cpu->Reg[inst_cream->Rt] = cpu->VFP[VFP_FPEXC]; 1150 cpu->Reg[inst_cream->Rt] = cpu->VFP[VFP_FPEXC];