dyncom: Clean up the constructor
Some function calls aren't necessary and would be handled by regular initialization routines.
This commit is contained in:
parent
befa556b78
commit
c3211c9c80
|
@ -19,25 +19,22 @@ ARM_DynCom::ARM_DynCom() {
|
||||||
state = std::unique_ptr<ARMul_State>(new ARMul_State);
|
state = std::unique_ptr<ARMul_State>(new ARMul_State);
|
||||||
|
|
||||||
ARMul_NewState(state.get());
|
ARMul_NewState(state.get());
|
||||||
|
ARMul_SelectProcessor(state.get(), ARM_v6_Prop | ARM_v5_Prop | ARM_v5e_Prop);
|
||||||
|
|
||||||
state->abort_model = ABORT_BASE_RESTORED;
|
state->abort_model = ABORT_BASE_RESTORED;
|
||||||
state->cpu = (cpu_config_t*)&s_arm11_cpu_info;
|
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->lateabtSig = LOW;
|
||||||
|
state->NirqSig = HIGH;
|
||||||
|
|
||||||
// Reset the core to initial state
|
// Reset the core to initial state
|
||||||
ARMul_CoProInit(state.get());
|
|
||||||
ARMul_Reset(state.get());
|
ARMul_Reset(state.get());
|
||||||
state->NextInstr = RESUME; // NOTE: This will be overwritten by LoadContext
|
state->NextInstr = RESUME; // NOTE: This will be overwritten by LoadContext
|
||||||
state->Emulate = RUN;
|
state->Emulate = RUN;
|
||||||
|
|
||||||
state->Reg[15] = 0x00000000;
|
|
||||||
state->Reg[13] = 0x10000000; // Set stack pointer to the top of the stack
|
state->Reg[13] = 0x10000000; // Set stack pointer to the top of the stack
|
||||||
state->NirqSig = HIGH;
|
state->Reg[15] = 0x00000000;
|
||||||
|
|
||||||
VFPInit(state.get()); // Initialize the VFP
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ARM_DynCom::~ARM_DynCom() {
|
ARM_DynCom::~ARM_DynCom() {
|
||||||
|
|
|
@ -64,10 +64,9 @@ void ARMul_SelectProcessor(ARMul_State* state, unsigned properties)
|
||||||
state->is_pxa27x = (properties & ARM_PXA27X_Prop) != 0;
|
state->is_pxa27x = (properties & ARM_PXA27X_Prop) != 0;
|
||||||
state->is_v7 = (properties & ARM_v7_Prop) != 0;
|
state->is_v7 = (properties & ARM_v7_Prop) != 0;
|
||||||
|
|
||||||
/* Only initialse the coprocessor support once we
|
// Only initialse the coprocessor support once we
|
||||||
know what kind of chip we are dealing with. */
|
// know what kind of chip we are dealing with.
|
||||||
//ARMul_CoProInit (state);
|
ARMul_CoProInit(state);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************************\
|
/***************************************************************************\
|
||||||
|
|
|
@ -26,8 +26,6 @@
|
||||||
#include "core/arm/skyeye_common/vfp/asm_vfp.h"
|
#include "core/arm/skyeye_common/vfp/asm_vfp.h"
|
||||||
#include "core/arm/skyeye_common/vfp/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)
|
unsigned VFPInit(ARMul_State* state)
|
||||||
{
|
{
|
||||||
state->VFP[VFP_OFFSET(VFP_FPSID)] = VFP_FPSID_IMPLMEN<<24 | VFP_FPSID_SW<<23 | VFP_FPSID_SUBARCH<<16 |
|
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_FPEXC)] = 0;
|
||||||
state->VFP[VFP_OFFSET(VFP_FPSCR)] = 0;
|
state->VFP[VFP_OFFSET(VFP_FPSCR)] = 0;
|
||||||
|
|
||||||
//persistent_state = state;
|
|
||||||
/* Reset only specify VFP_FPEXC_EN = '0' */
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in New Issue