diff options
author | Lioncash <mathew1800@gmail.com> | 2015-06-29 03:04:40 -0400 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2015-06-29 03:27:26 -0400 |
commit | 32a6379bc883a18124fbb5027a87738881f7a011 (patch) | |
tree | 12f2ace4e6bd90c826f646fb12a44ccd3d099574 /src/core/arm/skyeye_common/vfp/vfp.cpp | |
parent | 19d5fbce8e9a5419b5cbae610bbf18de82d87f2c (diff) |
vfp: Handle accesses to FPINST/FPINST2 system registers
Also has a side-benefit of correcting access to the FPEXC register.
Diffstat (limited to 'src/core/arm/skyeye_common/vfp/vfp.cpp')
-rw-r--r-- | src/core/arm/skyeye_common/vfp/vfp.cpp | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/src/core/arm/skyeye_common/vfp/vfp.cpp b/src/core/arm/skyeye_common/vfp/vfp.cpp index 571d6c2f..f40cf595 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) state->VFP[VFP_FPEXC] = 0; state->VFP[VFP_FPSCR] = 0; + // ARM11 MPCore instruction register reset values. + state->VFP[VFP_FPINST] = 0xEE000A00; + state->VFP[VFP_FPINST2] = 0; + // ARM11 MPCore feature register values. state->VFP[VFP_MVFR0] = 0x11111111; state->VFP[VFP_MVFR1] = 0; @@ -40,18 +44,6 @@ unsigned VFPInit(ARMul_State* state) return 0; } -void VMSR(ARMul_State* state, ARMword reg, ARMword Rt) -{ - if (reg == 1) - { - state->VFP[VFP_FPSCR] = state->Reg[Rt]; - } - else if (reg == 8) - { - state->VFP[VFP_FPEXC] = state->Reg[Rt]; - } -} - void VMOVBRS(ARMul_State* state, ARMword to_arm, ARMword t, ARMword n, ARMword* value) { if (to_arm) |