mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-15 22:54:00 +00:00
dyncom: Remove unnecessary initialization code.
Targeting ARM version variants was only a thing on armemu. The reset routine also does basically the same thing as NewState.
This commit is contained in:
parent
3257d797e1
commit
03213f893e
4 changed files with 2 additions and 59 deletions
|
@ -20,15 +20,8 @@
|
|||
ARM_DynCom::ARM_DynCom(PrivilegeMode initial_mode) {
|
||||
state = Common::make_unique<ARMul_State>();
|
||||
|
||||
ARMul_NewState(state.get());
|
||||
ARMul_SelectProcessor(state.get(), ARM_v6_Prop | ARM_v5_Prop | ARM_v5e_Prop);
|
||||
|
||||
state->bigendSig = LOW;
|
||||
state->NirqSig = HIGH;
|
||||
|
||||
// Reset the core to initial state
|
||||
ARMul_Reset(state.get());
|
||||
state->Emulate = RUN;
|
||||
|
||||
// Switch to the desired privilege mode.
|
||||
switch_mode(state.get(), initial_mode);
|
||||
|
|
|
@ -19,33 +19,6 @@
|
|||
#include "core/arm/skyeye_common/armstate.h"
|
||||
#include "core/arm/skyeye_common/vfp/vfp.h"
|
||||
|
||||
/***************************************************************************\
|
||||
* Returns a new instantiation of the ARMulator's state *
|
||||
\***************************************************************************/
|
||||
ARMul_State* ARMul_NewState(ARMul_State* state)
|
||||
{
|
||||
state->Emulate = RUN;
|
||||
state->Mode = USER32MODE;
|
||||
|
||||
state->lateabtSig = HIGH;
|
||||
state->bigendSig = LOW;
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
/***************************************************************************\
|
||||
* Call this routine to set ARMulator to model a certain processor *
|
||||
\***************************************************************************/
|
||||
|
||||
void ARMul_SelectProcessor(ARMul_State* state, unsigned properties)
|
||||
{
|
||||
state->is_v4 = (properties & (ARM_v4_Prop | ARM_v5_Prop)) != 0;
|
||||
state->is_v5 = (properties & ARM_v5_Prop) != 0;
|
||||
state->is_v5e = (properties & ARM_v5e_Prop) != 0;
|
||||
state->is_v6 = (properties & ARM_v6_Prop) != 0;
|
||||
state->is_v7 = (properties & ARM_v7_Prop) != 0;
|
||||
}
|
||||
|
||||
// Resets certain MPCore CP15 values to their ARM-defined reset values.
|
||||
static void ResetMPCoreCP15Registers(ARMul_State* cpu)
|
||||
{
|
||||
|
@ -104,9 +77,7 @@ static void ResetMPCoreCP15Registers(ARMul_State* cpu)
|
|||
cpu->CP15[CP15_TLB_DEBUG_CONTROL] = 0x00000000;
|
||||
}
|
||||
|
||||
/***************************************************************************\
|
||||
* Call this routine to set up the initial machine state (or perform a RESET *
|
||||
\***************************************************************************/
|
||||
// Performs a reset
|
||||
void ARMul_Reset(ARMul_State* state)
|
||||
{
|
||||
VFPInit(state);
|
||||
|
@ -125,4 +96,5 @@ void ARMul_Reset(ARMul_State* state)
|
|||
state->abortSig = LOW;
|
||||
|
||||
state->NumInstrs = 0;
|
||||
state->Emulate = RUN;
|
||||
}
|
||||
|
|
|
@ -89,30 +89,11 @@ struct ARMul_State
|
|||
unsigned bigendSig;
|
||||
unsigned syscallSig;
|
||||
|
||||
// For differentiating ARM core emulation.
|
||||
bool is_v4; // Are we emulating a v4 architecture (or higher)?
|
||||
bool is_v5; // Are we emulating a v5 architecture?
|
||||
bool is_v5e; // Are we emulating a v5e architecture?
|
||||
bool is_v6; // Are we emulating a v6 architecture?
|
||||
bool is_v7; // Are we emulating a v7 architecture?
|
||||
|
||||
// TODO(bunnei): Move this cache to a better place - it should be per codeset (likely per
|
||||
// process for our purposes), not per ARMul_State (which tracks CPU core state).
|
||||
std::unordered_map<u32, int> instruction_cache;
|
||||
};
|
||||
|
||||
/***************************************************************************\
|
||||
* Types of ARM we know about *
|
||||
\***************************************************************************/
|
||||
|
||||
enum {
|
||||
ARM_v4_Prop = 0x01,
|
||||
ARM_v5_Prop = 0x02,
|
||||
ARM_v5e_Prop = 0x04,
|
||||
ARM_v6_Prop = 0x08,
|
||||
ARM_v7_Prop = 0x10,
|
||||
};
|
||||
|
||||
/***************************************************************************\
|
||||
* The hardware vector addresses *
|
||||
\***************************************************************************/
|
||||
|
@ -167,7 +148,6 @@ enum {
|
|||
* Definitions of things in the emulator *
|
||||
\***************************************************************************/
|
||||
void ARMul_Reset(ARMul_State* state);
|
||||
ARMul_State* ARMul_NewState(ARMul_State* state);
|
||||
|
||||
/***************************************************************************\
|
||||
* Definitions of things in the co-processor interface *
|
||||
|
|
|
@ -17,8 +17,6 @@ struct ARMul_State;
|
|||
bool AddOverflow(u32, u32, u32);
|
||||
bool SubOverflow(u32, u32, u32);
|
||||
|
||||
void ARMul_SelectProcessor(ARMul_State*, unsigned);
|
||||
|
||||
u32 AddWithCarry(u32, u32, u32, bool*, bool*);
|
||||
bool ARMul_AddOverflowQ(u32, u32);
|
||||
|
||||
|
|
Loading…
Reference in a new issue