diff options
Diffstat (limited to 'src/core/arm/interpreter/arminit.cpp')
| -rw-r--r-- | src/core/arm/interpreter/arminit.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/core/arm/interpreter/arminit.cpp b/src/core/arm/interpreter/arminit.cpp index 1d732fe84..6fa028f49 100644 --- a/src/core/arm/interpreter/arminit.cpp +++ b/src/core/arm/interpreter/arminit.cpp | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #include "core/mem_map.h" | 19 | #include "core/mem_map.h" |
| 20 | #include "core/arm/skyeye_common/armdefs.h" | 20 | #include "core/arm/skyeye_common/armdefs.h" |
| 21 | #include "core/arm/skyeye_common/armemu.h" | 21 | #include "core/arm/skyeye_common/armemu.h" |
| 22 | #include "core/arm/skyeye_common/vfp/vfp.h" | ||
| 22 | 23 | ||
| 23 | /***************************************************************************\ | 24 | /***************************************************************************\ |
| 24 | * Returns a new instantiation of the ARMulator's state * | 25 | * Returns a new instantiation of the ARMulator's state * |
| @@ -56,15 +57,11 @@ ARMul_State* ARMul_NewState(ARMul_State* state) | |||
| 56 | 57 | ||
| 57 | void ARMul_SelectProcessor(ARMul_State* state, unsigned properties) | 58 | void ARMul_SelectProcessor(ARMul_State* state, unsigned properties) |
| 58 | { | 59 | { |
| 59 | state->is_v4 = (properties & (ARM_v4_Prop | ARM_v5_Prop)) != 0; | 60 | state->is_v4 = (properties & (ARM_v4_Prop | ARM_v5_Prop)) != 0; |
| 60 | state->is_v5 = (properties & ARM_v5_Prop) != 0; | 61 | state->is_v5 = (properties & ARM_v5_Prop) != 0; |
| 61 | state->is_v5e = (properties & ARM_v5e_Prop) != 0; | 62 | state->is_v5e = (properties & ARM_v5e_Prop) != 0; |
| 62 | state->is_v6 = (properties & ARM_v6_Prop) != 0; | 63 | state->is_v6 = (properties & ARM_v6_Prop) != 0; |
| 63 | state->is_v7 = (properties & ARM_v7_Prop) != 0; | 64 | state->is_v7 = (properties & ARM_v7_Prop) != 0; |
| 64 | |||
| 65 | // Only initialse the coprocessor support once we | ||
| 66 | // know what kind of chip we are dealing with. | ||
| 67 | ARMul_CoProInit(state); | ||
| 68 | } | 65 | } |
| 69 | 66 | ||
| 70 | // Resets certain MPCore CP15 values to their ARM-defined reset values. | 67 | // Resets certain MPCore CP15 values to their ARM-defined reset values. |
| @@ -130,6 +127,8 @@ static void ResetMPCoreCP15Registers(ARMul_State* cpu) | |||
| 130 | \***************************************************************************/ | 127 | \***************************************************************************/ |
| 131 | void ARMul_Reset(ARMul_State* state) | 128 | void ARMul_Reset(ARMul_State* state) |
| 132 | { | 129 | { |
| 130 | VFPInit(state); | ||
| 131 | |||
| 133 | state->NextInstr = 0; | 132 | state->NextInstr = 0; |
| 134 | 133 | ||
| 135 | state->Reg[15] = 0; | 134 | state->Reg[15] = 0; |