mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	CoreTiming: wrap into class
This commit is contained in:
		
							parent
							
								
									7c3d325aff
								
							
						
					
					
						commit
						9458e4d8ec
					
				
					 34 changed files with 413 additions and 413 deletions
				
			
		|  | @ -71,7 +71,8 @@ private: | |||
| 
 | ||||
| class DynarmicUserCallbacks final : public Dynarmic::A32::UserCallbacks { | ||||
| public: | ||||
|     explicit DynarmicUserCallbacks(ARM_Dynarmic& parent) : parent(parent) {} | ||||
|     explicit DynarmicUserCallbacks(ARM_Dynarmic& parent) | ||||
|         : parent(parent), timing(parent.system.CoreTiming()) {} | ||||
|     ~DynarmicUserCallbacks() = default; | ||||
| 
 | ||||
|     std::uint8_t MemoryRead8(VAddr vaddr) override { | ||||
|  | @ -148,18 +149,19 @@ public: | |||
|     } | ||||
| 
 | ||||
|     void AddTicks(std::uint64_t ticks) override { | ||||
|         CoreTiming::AddTicks(ticks); | ||||
|         timing.AddTicks(ticks); | ||||
|     } | ||||
|     std::uint64_t GetTicksRemaining() override { | ||||
|         s64 ticks = CoreTiming::GetDowncount(); | ||||
|         s64 ticks = timing.GetDowncount(); | ||||
|         return static_cast<u64>(ticks <= 0 ? 0 : ticks); | ||||
|     } | ||||
| 
 | ||||
|     ARM_Dynarmic& parent; | ||||
|     Core::Timing& timing; | ||||
| }; | ||||
| 
 | ||||
| ARM_Dynarmic::ARM_Dynarmic(PrivilegeMode initial_mode) | ||||
|     : cb(std::make_unique<DynarmicUserCallbacks>(*this)) { | ||||
| ARM_Dynarmic::ARM_Dynarmic(Core::System& system, PrivilegeMode initial_mode) | ||||
|     : system(system), cb(std::make_unique<DynarmicUserCallbacks>(*this)) { | ||||
|     interpreter_state = std::make_shared<ARMul_State>(initial_mode); | ||||
|     PageTableChanged(); | ||||
| } | ||||
|  |  | |||
|  | @ -15,11 +15,15 @@ namespace Memory { | |||
| struct PageTable; | ||||
| } // namespace Memory
 | ||||
| 
 | ||||
| namespace Core { | ||||
| struct System; | ||||
| } | ||||
| 
 | ||||
| class DynarmicUserCallbacks; | ||||
| 
 | ||||
| class ARM_Dynarmic final : public ARM_Interface { | ||||
| public: | ||||
|     explicit ARM_Dynarmic(PrivilegeMode initial_mode); | ||||
|     ARM_Dynarmic(Core::System& system, PrivilegeMode initial_mode); | ||||
|     ~ARM_Dynarmic(); | ||||
| 
 | ||||
|     void Run() override; | ||||
|  | @ -50,6 +54,7 @@ public: | |||
| 
 | ||||
| private: | ||||
|     friend class DynarmicUserCallbacks; | ||||
|     Core::System& system; | ||||
|     std::unique_ptr<DynarmicUserCallbacks> cb; | ||||
|     std::unique_ptr<Dynarmic::A32::Jit> MakeJit(); | ||||
| 
 | ||||
|  |  | |||
|  | @ -75,7 +75,7 @@ ARM_DynCom::ARM_DynCom(PrivilegeMode initial_mode) { | |||
| ARM_DynCom::~ARM_DynCom() {} | ||||
| 
 | ||||
| void ARM_DynCom::Run() { | ||||
|     ExecuteInstructions(std::max<s64>(CoreTiming::GetDowncount(), 0)); | ||||
|     ExecuteInstructions(std::max<s64>(Core::System::GetInstance().CoreTiming().GetDowncount(), 0)); | ||||
| } | ||||
| 
 | ||||
| void ARM_DynCom::Step() { | ||||
|  | @ -146,7 +146,7 @@ void ARM_DynCom::SetCP15Register(CP15Register reg, u32 value) { | |||
| void ARM_DynCom::ExecuteInstructions(u64 num_instructions) { | ||||
|     state->NumInstrsToExecute = num_instructions; | ||||
|     unsigned ticks_executed = InterpreterMainLoop(state.get()); | ||||
|     CoreTiming::AddTicks(ticks_executed); | ||||
|     Core::System::GetInstance().CoreTiming().AddTicks(ticks_executed); | ||||
|     state->ServeBreak(); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -18,6 +18,7 @@ | |||
| #include "core/arm/skyeye_common/armstate.h" | ||||
| #include "core/arm/skyeye_common/armsupp.h" | ||||
| #include "core/arm/skyeye_common/vfp/vfp.h" | ||||
| #include "core/core.h" | ||||
| #include "core/core_timing.h" | ||||
| #include "core/gdbstub/gdbstub.h" | ||||
| #include "core/hle/kernel/svc.h" | ||||
|  | @ -3859,7 +3860,7 @@ SUB_INST : { | |||
| SWI_INST : { | ||||
|     if (inst_base->cond == ConditionCode::AL || CondPassed(cpu, inst_base->cond)) { | ||||
|         swi_inst* const inst_cream = (swi_inst*)inst_base->component; | ||||
|         CoreTiming::AddTicks(num_instrs); | ||||
|         Core::System::GetInstance().CoreTiming().AddTicks(num_instrs); | ||||
|         cpu->NumInstrsToExecute = | ||||
|             num_instrs >= cpu->NumInstrsToExecute ? 0 : cpu->NumInstrsToExecute - num_instrs; | ||||
|         num_instrs = 0; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue