mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +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…
	
	Add table
		Add a link
		
	
		Reference in a new issue