diff options
| author | bunnei <bunneidev@gmail.com> | 2017-10-09 23:56:20 -0400 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2017-10-09 23:56:20 -0400 |
| commit | b1d5db1cf60344b6b081c9d03cb6ccc3264326cd (patch) | |
| tree | fde377c4ba3c0f92c032e6f5ec8627aae37270ef /src/core/arm/arm_interface.h | |
| parent | 23ce4f5afc66eb04a7aafc4f89685b8109b8d5c6 (diff) | |
| parent | d15e15bd058f93f1600c86ad8de7482740724f3f (diff) | |
Merge remote-tracking branch 'upstream/master' into nx
# Conflicts:
# src/core/CMakeLists.txt
# src/core/arm/dynarmic/arm_dynarmic.cpp
# src/core/arm/dyncom/arm_dyncom.cpp
# src/core/hle/kernel/process.cpp
# src/core/hle/kernel/thread.cpp
# src/core/hle/kernel/thread.h
# src/core/hle/kernel/vm_manager.cpp
# src/core/loader/3dsx.cpp
# src/core/loader/elf.cpp
# src/core/loader/ncch.cpp
# src/core/memory.cpp
# src/core/memory.h
# src/core/memory_setup.h
Diffstat (limited to 'src/core/arm/arm_interface.h')
| -rw-r--r-- | src/core/arm/arm_interface.h | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/core/arm/arm_interface.h b/src/core/arm/arm_interface.h index f613556dd..0b3096347 100644 --- a/src/core/arm/arm_interface.h +++ b/src/core/arm/arm_interface.h @@ -5,6 +5,7 @@ #pragma once #include "common/common_types.h" +#include "core/hle/kernel/vm_manager.h" #include "core/arm/skyeye_common/arm_regformat.h" #include "core/arm/skyeye_common/vfp/asm_vfp.h" @@ -19,10 +20,11 @@ public: u64 sp; u64 pc; u64 cpsr; - u64 fpu_registers[64]; + u128 fpu_registers[32]; u64 fpscr; u64 fpexc; + // TODO(bunnei): Fix once we have proper support for tpidrro_el0, etc. in the JIT VAddr tls_address; }; @@ -41,9 +43,14 @@ public: Run(1); } + virtual void MapBackingMemory(VAddr address, size_t size, u8* memory, Kernel::VMAPermission perms) {} + /// Clear all instruction cache virtual void ClearInstructionCache() = 0; + /// Notify CPU emulation that page tables have changed + virtual void PageTableChanged() = 0; + /** * Set the Program Counter to an address * @param addr Address to set PC to @@ -70,6 +77,10 @@ public: */ virtual void SetReg(int index, u64 value) = 0; + virtual const u128& GetExtReg(int index) const = 0; + + virtual void SetExtReg(int index, u128& value) = 0; + /** * Gets the value of a VFP register * @param index Register index (0-31) @@ -129,12 +140,6 @@ public: virtual void SetTlsAddress(VAddr address) = 0; /** - * Advance the CPU core by the specified number of ticks (e.g. to simulate CPU execution time) - * @param ticks Number of ticks to advance the CPU core - */ - virtual void AddTicks(u64 ticks) = 0; - - /** * Saves the current CPU context * @param ctx Thread context to save */ @@ -154,9 +159,6 @@ public: return num_instructions; } - s64 down_count = 0; ///< A decreasing counter of remaining cycles before the next event, - /// decreased by the cpu run loop - protected: /** * Executes the given number of instructions |
