mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	fixed licensing and updated code style naming for arm_interface/arm_interpreter frontend module
This commit is contained in:
		
							parent
							
								
									ad4fffca0d
								
							
						
					
					
						commit
						d0674cc98b
					
				
					 3 changed files with 57 additions and 94 deletions
				
			
		|  | @ -11,7 +11,7 @@ | ||||||
| class ARM_Interface { | class ARM_Interface { | ||||||
| public: | public: | ||||||
|     ARM_Interface() { |     ARM_Interface() { | ||||||
|         num_instructions_ = 0; |         m_num_instructions = 0; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     ~ARM_Interface() { |     ~ARM_Interface() { | ||||||
|  | @ -20,7 +20,7 @@ public: | ||||||
|     /// Step CPU by one instruction
 |     /// Step CPU by one instruction
 | ||||||
|     void Step() { |     void Step() { | ||||||
|         ExecuteInstruction(); |         ExecuteInstruction(); | ||||||
|         num_instructions_++; |         m_num_instructions++; | ||||||
|     } |     } | ||||||
|   |   | ||||||
|     /**
 |     /**
 | ||||||
|  | @ -33,36 +33,38 @@ public: | ||||||
|      * Get the current Program Counter |      * Get the current Program Counter | ||||||
|      * @return Returns current PC |      * @return Returns current PC | ||||||
|      */ |      */ | ||||||
|     virtual u32 PC() = 0; |     virtual u32 GetPC() const = 0; | ||||||
| 
 | 
 | ||||||
|     /**
 |     /**
 | ||||||
|      * Get an ARM register |      * Get an ARM register | ||||||
|      * @param index Register index (0-15) |      * @param index Register index (0-15) | ||||||
|      * @return Returns the value in the register |      * @return Returns the value in the register | ||||||
|      */ |      */ | ||||||
|     virtual u32 Reg(int index) = 0; |     virtual u32 GetReg(int index) const = 0; | ||||||
| 
 | 
 | ||||||
|     /**
 |     /**
 | ||||||
|      * Get the current CPSR register |      * Get the current CPSR register | ||||||
|      * @return Returns the value of the CPSR register |      * @return Returns the value of the CPSR register | ||||||
|      */ |      */ | ||||||
|     virtual u32 CPSR() = 0;   |     virtual u32 GetCPSR() const = 0;   | ||||||
| 
 | 
 | ||||||
|     /**
 |     /**
 | ||||||
|      * Returns the number of clock ticks since the last rese |      * Returns the number of clock ticks since the last rese | ||||||
|      * @return Returns number of clock ticks |      * @return Returns number of clock ticks | ||||||
|      */ |      */ | ||||||
|     virtual u64 GetTicks() = 0; |     virtual u64 GetTicks() const = 0; | ||||||
| 
 | 
 | ||||||
|     /// Getter for num_instructions_
 |     /// Getter for m_num_instructions
 | ||||||
|     u64 num_instructions() { return num_instructions_; } |     u64 GetNumInstructions() { | ||||||
|  |         return m_num_instructions; | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|      |      | ||||||
|     /// Execture next instruction
 |     /// Execture next instruction
 | ||||||
|     virtual void ExecuteInstruction() = 0; |     virtual void ExecuteInstruction() = 0; | ||||||
| 
 | 
 | ||||||
|     u64 num_instructions_;  ///< Number of instructions executed
 |     u64 m_num_instructions;                     ///< Number of instructions executed
 | ||||||
| 
 | 
 | ||||||
|     DISALLOW_COPY_AND_ASSIGN(ARM_Interface); |     DISALLOW_COPY_AND_ASSIGN(ARM_Interface); | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | @ -1,26 +1,6 @@ | ||||||
| /**
 | // Copyright 2014 Citra Emulator Project
 | ||||||
|  * Copyright (C) 2013 Citrus Emulator | // Licensed under GPLv2
 | ||||||
|  * | // Refer to the license.txt file included.  
 | ||||||
|  * @file    arm_interpreter.h |  | ||||||
|  * @author  bunnei |  | ||||||
|  * @date    2014-04-04 |  | ||||||
|  * @brief   ARM interface instance for SkyEye interprerer |  | ||||||
|  * |  | ||||||
|  * @section LICENSE |  | ||||||
|  * This program is free software; you can redistribute it and/or |  | ||||||
|  * modify it under the terms of the GNU General Public License as |  | ||||||
|  * published by the Free Software Foundation; either version 2 of |  | ||||||
|  * the License, or (at your option) any later version. |  | ||||||
|  * |  | ||||||
|  * This program is distributed in the hope that it will be useful, but |  | ||||||
|  * WITHOUT ANY WARRANTY; without even the implied warranty of |  | ||||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |  | ||||||
|  * General Public License for more details at |  | ||||||
|  * http://www.gnu.org/copyleft/gpl.html
 |  | ||||||
|  * |  | ||||||
|  * Official project repository can be found at: |  | ||||||
|  * http://code.google.com/p/gekko-gc-emu/
 |  | ||||||
|  */ |  | ||||||
| 
 | 
 | ||||||
| #include "arm_interpreter.h" | #include "arm_interpreter.h" | ||||||
| 
 | 
 | ||||||
|  | @ -29,58 +9,61 @@ const static cpu_config_t s_arm11_cpu_info = { | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| ARM_Interpreter::ARM_Interpreter()  { | ARM_Interpreter::ARM_Interpreter()  { | ||||||
| 
 |     m_state = new ARMul_State; | ||||||
|     state = new ARMul_State; |  | ||||||
| 
 | 
 | ||||||
|     ARMul_EmulateInit(); |     ARMul_EmulateInit(); | ||||||
|     ARMul_NewState(state); |     ARMul_NewState(m_state); | ||||||
| 
 | 
 | ||||||
|     state->abort_model = 0; |     m_state->abort_model = 0; | ||||||
|     state->cpu = (cpu_config_t*)&s_arm11_cpu_info; |     m_state->cpu = (cpu_config_t*)&s_arm11_cpu_info; | ||||||
|     state->bigendSig = LOW; |     m_state->bigendSig = LOW; | ||||||
| 
 | 
 | ||||||
|     ARMul_SelectProcessor(state, ARM_v6_Prop | ARM_v5_Prop | ARM_v5e_Prop); |     ARMul_SelectProcessor(m_state, ARM_v6_Prop | ARM_v5_Prop | ARM_v5e_Prop); | ||||||
|     state->lateabtSig = LOW; |     m_state->lateabtSig = LOW; | ||||||
|     mmu_init(state); |     mmu_init(m_state); | ||||||
| 
 | 
 | ||||||
|     // Reset the core to initial state
 |     // Reset the core to initial state
 | ||||||
|     ARMul_Reset(state); |     ARMul_Reset(m_state); | ||||||
|     state->NextInstr = 0; |     m_state->NextInstr = 0; | ||||||
|     state->Emulate = 3; |     m_state->Emulate = 3; | ||||||
| 
 | 
 | ||||||
|     state->pc = state->Reg[15] = 0x00000000; |     m_state->pc = m_state->Reg[15] = 0x00000000; | ||||||
|     state->Reg[13] = 0x10000000; // Set stack pointer to the top of the stack
 |     m_state->Reg[13] = 0x10000000; // Set stack pointer to the top of the stack
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void ARM_Interpreter::SetPC(u32 pc) { | void ARM_Interpreter::SetPC(u32 pc) { | ||||||
|     state->pc = state->Reg[15] = pc; |     m_state->pc = m_state->Reg[15] = pc; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| u32 ARM_Interpreter::PC() { | u32 ARM_Interpreter::GetPC() const { | ||||||
|     return state->pc; |     return m_state->pc; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| u32 ARM_Interpreter::Reg(int index){ | u32 ARM_Interpreter::GetReg(int index) const { | ||||||
|     return state->Reg[index]; |     return m_state->Reg[index]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| u32 ARM_Interpreter::CPSR() { | u32 ARM_Interpreter::GetCPSR() const { | ||||||
|     return state->Cpsr; |     return m_state->Cpsr; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | u64 ARM_Interpreter::GetTicks() const { | ||||||
|  |     return ARMul_Time(m_state); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ARM_Interpreter::~ARM_Interpreter() { | ARM_Interpreter::~ARM_Interpreter() { | ||||||
|     delete state; |     delete m_state; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void ARM_Interpreter::ExecuteInstruction() { | void ARM_Interpreter::ExecuteInstruction() { | ||||||
|     state->step++; |     m_state->step++; | ||||||
|     state->cycle++; |     m_state->cycle++; | ||||||
|     state->EndCondition = 0; |     m_state->EndCondition = 0; | ||||||
|     state->stop_simulator = 0; |     m_state->stop_simulator = 0; | ||||||
|     state->NextInstr = RESUME; |     m_state->NextInstr = RESUME; | ||||||
|     state->last_pc = state->Reg[15]; |     m_state->last_pc = m_state->Reg[15]; | ||||||
|     state->Reg[15] = ARMul_DoInstr(state); |     m_state->Reg[15] = ARMul_DoInstr(m_state); | ||||||
|     state->Cpsr = ((state->Cpsr & 0x0fffffdf) | (state->NFlag << 31) | (state->ZFlag << 30) |  |     m_state->Cpsr = ((m_state->Cpsr & 0x0fffffdf) | (m_state->NFlag << 31) | (m_state->ZFlag << 30) |  | ||||||
|                    (state->CFlag << 29) | (state->VFlag << 28) | (state->TFlag << 5)); |                    (m_state->CFlag << 29) | (m_state->VFlag << 28) | (m_state->TFlag << 5)); | ||||||
|     FLUSHPIPE; |     m_state->NextInstr |= PRIMEPIPE; // Flush pipe
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,26 +1,6 @@ | ||||||
| /**
 | // Copyright 2014 Citra Emulator Project
 | ||||||
| * Copyright (C) 2013 Citrus Emulator | // Licensed under GPLv2
 | ||||||
| * | // Refer to the license.txt file included.  
 | ||||||
| * @file    arm_interpreter.h |  | ||||||
| * @author  bunnei |  | ||||||
| * @date    2014-04-04 |  | ||||||
| * @brief   ARM interface instance for SkyEye interprerer |  | ||||||
| * |  | ||||||
| * @section LICENSE |  | ||||||
| * This program is free software; you can redistribute it and/or |  | ||||||
| * modify it under the terms of the GNU General Public License as |  | ||||||
| * published by the Free Software Foundation; either version 2 of |  | ||||||
| * the License, or (at your option) any later version. |  | ||||||
| * |  | ||||||
| * This program is distributed in the hope that it will be useful, but |  | ||||||
| * WITHOUT ANY WARRANTY; without even the implied warranty of |  | ||||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |  | ||||||
| * General Public License for more details at |  | ||||||
| * http://www.gnu.org/copyleft/gpl.html
 |  | ||||||
| * |  | ||||||
| * Official project repository can be found at: |  | ||||||
| * http://code.google.com/p/gekko-gc-emu/
 |  | ||||||
| */ |  | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
|  | @ -39,18 +19,16 @@ public: | ||||||
| 
 | 
 | ||||||
|     void SetPC(u32 pc); |     void SetPC(u32 pc); | ||||||
| 
 | 
 | ||||||
|     u32 PC(); |     u32 GetPC() const; | ||||||
| 
 | 
 | ||||||
|     u32 Reg(int index); |     u32 GetReg(int index) const; | ||||||
| 
 | 
 | ||||||
|     u32 CPSR(); |     u32 GetCPSR() const; | ||||||
| 
 | 
 | ||||||
|     u64 GetTicks() { |     u64 GetTicks() const; | ||||||
|         return ARMul_Time(state); |  | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|     ARMul_State* state; |     ARMul_State* m_state; | ||||||
| 
 | 
 | ||||||
|     DISALLOW_COPY_AND_ASSIGN(ARM_Interpreter); |     DISALLOW_COPY_AND_ASSIGN(ARM_Interpreter); | ||||||
| }; | }; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue