mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-11-03 23:28:48 +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();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue