diff options
| author | 2017-10-09 23:56:20 -0400 | |
|---|---|---|
| committer | 2017-10-09 23:56:20 -0400 | |
| commit | b1d5db1cf60344b6b081c9d03cb6ccc3264326cd (patch) | |
| tree | fde377c4ba3c0f92c032e6f5ec8627aae37270ef /src/core/arm/arm_interface.h | |
| parent | loader: Various improvements for NSO/NRO loaders. (diff) | |
| parent | Merge pull request #2996 from MerryMage/split-travis (diff) | |
| download | yuzu-b1d5db1cf60344b6b081c9d03cb6ccc3264326cd.tar.gz yuzu-b1d5db1cf60344b6b081c9d03cb6ccc3264326cd.tar.xz yuzu-b1d5db1cf60344b6b081c9d03cb6ccc3264326cd.zip | |
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 @@ | |||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | #include "common/common_types.h" | 7 | #include "common/common_types.h" |
| 8 | #include "core/hle/kernel/vm_manager.h" | ||
| 8 | #include "core/arm/skyeye_common/arm_regformat.h" | 9 | #include "core/arm/skyeye_common/arm_regformat.h" |
| 9 | #include "core/arm/skyeye_common/vfp/asm_vfp.h" | 10 | #include "core/arm/skyeye_common/vfp/asm_vfp.h" |
| 10 | 11 | ||
| @@ -19,10 +20,11 @@ public: | |||
| 19 | u64 sp; | 20 | u64 sp; |
| 20 | u64 pc; | 21 | u64 pc; |
| 21 | u64 cpsr; | 22 | u64 cpsr; |
| 22 | u64 fpu_registers[64]; | 23 | u128 fpu_registers[32]; |
| 23 | u64 fpscr; | 24 | u64 fpscr; |
| 24 | u64 fpexc; | 25 | u64 fpexc; |
| 25 | 26 | ||
| 27 | |||
| 26 | // TODO(bunnei): Fix once we have proper support for tpidrro_el0, etc. in the JIT | 28 | // TODO(bunnei): Fix once we have proper support for tpidrro_el0, etc. in the JIT |
| 27 | VAddr tls_address; | 29 | VAddr tls_address; |
| 28 | }; | 30 | }; |
| @@ -41,9 +43,14 @@ public: | |||
| 41 | Run(1); | 43 | Run(1); |
| 42 | } | 44 | } |
| 43 | 45 | ||
| 46 | virtual void MapBackingMemory(VAddr address, size_t size, u8* memory, Kernel::VMAPermission perms) {} | ||
| 47 | |||
| 44 | /// Clear all instruction cache | 48 | /// Clear all instruction cache |
| 45 | virtual void ClearInstructionCache() = 0; | 49 | virtual void ClearInstructionCache() = 0; |
| 46 | 50 | ||
| 51 | /// Notify CPU emulation that page tables have changed | ||
| 52 | virtual void PageTableChanged() = 0; | ||
| 53 | |||
| 47 | /** | 54 | /** |
| 48 | * Set the Program Counter to an address | 55 | * Set the Program Counter to an address |
| 49 | * @param addr Address to set PC to | 56 | * @param addr Address to set PC to |
| @@ -70,6 +77,10 @@ public: | |||
| 70 | */ | 77 | */ |
| 71 | virtual void SetReg(int index, u64 value) = 0; | 78 | virtual void SetReg(int index, u64 value) = 0; |
| 72 | 79 | ||
| 80 | virtual const u128& GetExtReg(int index) const = 0; | ||
| 81 | |||
| 82 | virtual void SetExtReg(int index, u128& value) = 0; | ||
| 83 | |||
| 73 | /** | 84 | /** |
| 74 | * Gets the value of a VFP register | 85 | * Gets the value of a VFP register |
| 75 | * @param index Register index (0-31) | 86 | * @param index Register index (0-31) |
| @@ -129,12 +140,6 @@ public: | |||
| 129 | virtual void SetTlsAddress(VAddr address) = 0; | 140 | virtual void SetTlsAddress(VAddr address) = 0; |
| 130 | 141 | ||
| 131 | /** | 142 | /** |
| 132 | * Advance the CPU core by the specified number of ticks (e.g. to simulate CPU execution time) | ||
| 133 | * @param ticks Number of ticks to advance the CPU core | ||
| 134 | */ | ||
| 135 | virtual void AddTicks(u64 ticks) = 0; | ||
| 136 | |||
| 137 | /** | ||
| 138 | * Saves the current CPU context | 143 | * Saves the current CPU context |
| 139 | * @param ctx Thread context to save | 144 | * @param ctx Thread context to save |
| 140 | */ | 145 | */ |
| @@ -154,9 +159,6 @@ public: | |||
| 154 | return num_instructions; | 159 | return num_instructions; |
| 155 | } | 160 | } |
| 156 | 161 | ||
| 157 | s64 down_count = 0; ///< A decreasing counter of remaining cycles before the next event, | ||
| 158 | /// decreased by the cpu run loop | ||
| 159 | |||
| 160 | protected: | 162 | protected: |
| 161 | /** | 163 | /** |
| 162 | * Executes the given number of instructions | 164 | * Executes the given number of instructions |