فهرست منبع

dyncom: Clean up the constructor

Some function calls aren't necessary and would be handled by regular initialization routines.
Lioncash 11 سال پیش
والد
کامیت
c3211c9c80
3فایلهای تغییر یافته به همراه7 افزوده شده و 16 حذف شده
  1. 4 7
      src/core/arm/dyncom/arm_dyncom.cpp
  2. 3 4
      src/core/arm/interpreter/arminit.cpp
  3. 0 5
      src/core/arm/skyeye_common/vfp/vfp.cpp

+ 4 - 7
src/core/arm/dyncom/arm_dyncom.cpp

@@ -19,25 +19,22 @@ ARM_DynCom::ARM_DynCom() {
     state = std::unique_ptr<ARMul_State>(new ARMul_State);
 
     ARMul_NewState(state.get());
+    ARMul_SelectProcessor(state.get(), ARM_v6_Prop | ARM_v5_Prop | ARM_v5e_Prop);
 
     state->abort_model = ABORT_BASE_RESTORED;
     state->cpu = (cpu_config_t*)&s_arm11_cpu_info;
-    state->bigendSig = LOW;
 
-    ARMul_SelectProcessor(state.get(), ARM_v6_Prop | ARM_v5_Prop | ARM_v5e_Prop);
+    state->bigendSig = LOW;
     state->lateabtSig = LOW;
+    state->NirqSig = HIGH;
 
     // Reset the core to initial state
-    ARMul_CoProInit(state.get());
     ARMul_Reset(state.get());
     state->NextInstr = RESUME; // NOTE: This will be overwritten by LoadContext
     state->Emulate = RUN;
 
-    state->Reg[15] = 0x00000000;
     state->Reg[13] = 0x10000000; // Set stack pointer to the top of the stack
-    state->NirqSig = HIGH;
-
-    VFPInit(state.get()); // Initialize the VFP
+    state->Reg[15] = 0x00000000;
 }
 
 ARM_DynCom::~ARM_DynCom() {

+ 3 - 4
src/core/arm/interpreter/arminit.cpp

@@ -64,10 +64,9 @@ void ARMul_SelectProcessor(ARMul_State* state, unsigned properties)
     state->is_pxa27x = (properties & ARM_PXA27X_Prop) != 0;
     state->is_v7     = (properties & ARM_v7_Prop) != 0;
 
-    /* Only initialse the coprocessor support once we
-       know what kind of chip we are dealing with.  */
-    //ARMul_CoProInit (state);
-
+    // Only initialse the coprocessor support once we
+    // know what kind of chip we are dealing with.
+    ARMul_CoProInit(state);
 }
 
 /***************************************************************************\

+ 0 - 5
src/core/arm/skyeye_common/vfp/vfp.cpp

@@ -26,8 +26,6 @@
 #include "core/arm/skyeye_common/vfp/asm_vfp.h"
 #include "core/arm/skyeye_common/vfp/vfp.h"
 
-//ARMul_State* persistent_state; /* function calls from SoftFloat lib don't have an access to ARMul_state. */
-
 unsigned VFPInit(ARMul_State* state)
 {
     state->VFP[VFP_OFFSET(VFP_FPSID)] = VFP_FPSID_IMPLMEN<<24 | VFP_FPSID_SW<<23 | VFP_FPSID_SUBARCH<<16 |
@@ -35,9 +33,6 @@ unsigned VFPInit(ARMul_State* state)
     state->VFP[VFP_OFFSET(VFP_FPEXC)] = 0;
     state->VFP[VFP_OFFSET(VFP_FPSCR)] = 0;
 
-    //persistent_state = state;
-    /* Reset only specify VFP_FPEXC_EN = '0' */
-
     return 0;
 }