diff options
Diffstat (limited to 'src/core/arm')
| -rw-r--r-- | src/core/arm/arm_interface.cpp | 10 | ||||
| -rw-r--r-- | src/core/arm/arm_interface.h | 8 | ||||
| -rw-r--r-- | src/core/arm/dynarmic/arm_dynarmic_32.cpp | 6 | ||||
| -rw-r--r-- | src/core/arm/dynarmic/arm_dynarmic_32.h | 6 | ||||
| -rw-r--r-- | src/core/arm/dynarmic/arm_dynarmic_64.cpp | 8 | ||||
| -rw-r--r-- | src/core/arm/dynarmic/arm_dynarmic_64.h | 6 |
6 files changed, 22 insertions, 22 deletions
diff --git a/src/core/arm/arm_interface.cpp b/src/core/arm/arm_interface.cpp index 4a331d4c1..be3f55cd2 100644 --- a/src/core/arm/arm_interface.cpp +++ b/src/core/arm/arm_interface.cpp | |||
| @@ -168,21 +168,21 @@ void ARM_Interface::LoadWatchpointArray(const WatchpointArray& wp) { | |||
| 168 | } | 168 | } |
| 169 | 169 | ||
| 170 | const Kernel::DebugWatchpoint* ARM_Interface::MatchingWatchpoint( | 170 | const Kernel::DebugWatchpoint* ARM_Interface::MatchingWatchpoint( |
| 171 | VAddr addr, u64 size, Kernel::DebugWatchpointType access_type) const { | 171 | u64 addr, u64 size, Kernel::DebugWatchpointType access_type) const { |
| 172 | if (!watchpoints) { | 172 | if (!watchpoints) { |
| 173 | return nullptr; | 173 | return nullptr; |
| 174 | } | 174 | } |
| 175 | 175 | ||
| 176 | const VAddr start_address{addr}; | 176 | const u64 start_address{addr}; |
| 177 | const VAddr end_address{addr + size}; | 177 | const u64 end_address{addr + size}; |
| 178 | 178 | ||
| 179 | for (size_t i = 0; i < Core::Hardware::NUM_WATCHPOINTS; i++) { | 179 | for (size_t i = 0; i < Core::Hardware::NUM_WATCHPOINTS; i++) { |
| 180 | const auto& watch{(*watchpoints)[i]}; | 180 | const auto& watch{(*watchpoints)[i]}; |
| 181 | 181 | ||
| 182 | if (end_address <= watch.start_address) { | 182 | if (end_address <= GetInteger(watch.start_address)) { |
| 183 | continue; | 183 | continue; |
| 184 | } | 184 | } |
| 185 | if (start_address >= watch.end_address) { | 185 | if (start_address >= GetInteger(watch.end_address)) { |
| 186 | continue; | 186 | continue; |
| 187 | } | 187 | } |
| 188 | if ((access_type & watch.type) == Kernel::DebugWatchpointType::None) { | 188 | if ((access_type & watch.type) == Kernel::DebugWatchpointType::None) { |
diff --git a/src/core/arm/arm_interface.h b/src/core/arm/arm_interface.h index c40771c97..8e40702cc 100644 --- a/src/core/arm/arm_interface.h +++ b/src/core/arm/arm_interface.h | |||
| @@ -78,7 +78,7 @@ public: | |||
| 78 | * @param addr Start address of the cache range to clear | 78 | * @param addr Start address of the cache range to clear |
| 79 | * @param size Size of the cache range to clear, starting at addr | 79 | * @param size Size of the cache range to clear, starting at addr |
| 80 | */ | 80 | */ |
| 81 | virtual void InvalidateCacheRange(VAddr addr, std::size_t size) = 0; | 81 | virtual void InvalidateCacheRange(u64 addr, std::size_t size) = 0; |
| 82 | 82 | ||
| 83 | /** | 83 | /** |
| 84 | * Notifies CPU emulation that the current page table has changed. | 84 | * Notifies CPU emulation that the current page table has changed. |
| @@ -149,9 +149,9 @@ public: | |||
| 149 | */ | 149 | */ |
| 150 | virtual void SetPSTATE(u32 pstate) = 0; | 150 | virtual void SetPSTATE(u32 pstate) = 0; |
| 151 | 151 | ||
| 152 | virtual VAddr GetTlsAddress() const = 0; | 152 | virtual u64 GetTlsAddress() const = 0; |
| 153 | 153 | ||
| 154 | virtual void SetTlsAddress(VAddr address) = 0; | 154 | virtual void SetTlsAddress(u64 address) = 0; |
| 155 | 155 | ||
| 156 | /** | 156 | /** |
| 157 | * Gets the value within the TPIDR_EL0 (read/write software thread ID) register. | 157 | * Gets the value within the TPIDR_EL0 (read/write software thread ID) register. |
| @@ -214,7 +214,7 @@ protected: | |||
| 214 | 214 | ||
| 215 | static void SymbolicateBacktrace(Core::System& system, std::vector<BacktraceEntry>& out); | 215 | static void SymbolicateBacktrace(Core::System& system, std::vector<BacktraceEntry>& out); |
| 216 | const Kernel::DebugWatchpoint* MatchingWatchpoint( | 216 | const Kernel::DebugWatchpoint* MatchingWatchpoint( |
| 217 | VAddr addr, u64 size, Kernel::DebugWatchpointType access_type) const; | 217 | u64 addr, u64 size, Kernel::DebugWatchpointType access_type) const; |
| 218 | 218 | ||
| 219 | virtual Dynarmic::HaltReason RunJit() = 0; | 219 | virtual Dynarmic::HaltReason RunJit() = 0; |
| 220 | virtual Dynarmic::HaltReason StepJit() = 0; | 220 | virtual Dynarmic::HaltReason StepJit() = 0; |
diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.cpp b/src/core/arm/dynarmic/arm_dynarmic_32.cpp index 2a7570073..aa92d3fc3 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_32.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic_32.cpp | |||
| @@ -155,7 +155,7 @@ public: | |||
| 155 | return std::max<s64>(parent.system.CoreTiming().GetDowncount(), 0); | 155 | return std::max<s64>(parent.system.CoreTiming().GetDowncount(), 0); |
| 156 | } | 156 | } |
| 157 | 157 | ||
| 158 | bool CheckMemoryAccess(VAddr addr, u64 size, Kernel::DebugWatchpointType type) { | 158 | bool CheckMemoryAccess(u64 addr, u64 size, Kernel::DebugWatchpointType type) { |
| 159 | if (!check_memory_access) { | 159 | if (!check_memory_access) { |
| 160 | return true; | 160 | return true; |
| 161 | } | 161 | } |
| @@ -397,7 +397,7 @@ u64 ARM_Dynarmic_32::GetTlsAddress() const { | |||
| 397 | return cp15->uro; | 397 | return cp15->uro; |
| 398 | } | 398 | } |
| 399 | 399 | ||
| 400 | void ARM_Dynarmic_32::SetTlsAddress(VAddr address) { | 400 | void ARM_Dynarmic_32::SetTlsAddress(u64 address) { |
| 401 | cp15->uro = static_cast<u32>(address); | 401 | cp15->uro = static_cast<u32>(address); |
| 402 | } | 402 | } |
| 403 | 403 | ||
| @@ -439,7 +439,7 @@ void ARM_Dynarmic_32::ClearInstructionCache() { | |||
| 439 | jit.load()->ClearCache(); | 439 | jit.load()->ClearCache(); |
| 440 | } | 440 | } |
| 441 | 441 | ||
| 442 | void ARM_Dynarmic_32::InvalidateCacheRange(VAddr addr, std::size_t size) { | 442 | void ARM_Dynarmic_32::InvalidateCacheRange(u64 addr, std::size_t size) { |
| 443 | jit.load()->InvalidateCacheRange(static_cast<u32>(addr), size); | 443 | jit.load()->InvalidateCacheRange(static_cast<u32>(addr), size); |
| 444 | } | 444 | } |
| 445 | 445 | ||
diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.h b/src/core/arm/dynarmic/arm_dynarmic_32.h index d24ba2289..bce695daf 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_32.h +++ b/src/core/arm/dynarmic/arm_dynarmic_32.h | |||
| @@ -41,8 +41,8 @@ public: | |||
| 41 | void SetVectorReg(int index, u128 value) override; | 41 | void SetVectorReg(int index, u128 value) override; |
| 42 | u32 GetPSTATE() const override; | 42 | u32 GetPSTATE() const override; |
| 43 | void SetPSTATE(u32 pstate) override; | 43 | void SetPSTATE(u32 pstate) override; |
| 44 | VAddr GetTlsAddress() const override; | 44 | u64 GetTlsAddress() const override; |
| 45 | void SetTlsAddress(VAddr address) override; | 45 | void SetTlsAddress(u64 address) override; |
| 46 | void SetTPIDR_EL0(u64 value) override; | 46 | void SetTPIDR_EL0(u64 value) override; |
| 47 | u64 GetTPIDR_EL0() const override; | 47 | u64 GetTPIDR_EL0() const override; |
| 48 | 48 | ||
| @@ -60,7 +60,7 @@ public: | |||
| 60 | void ClearExclusiveState() override; | 60 | void ClearExclusiveState() override; |
| 61 | 61 | ||
| 62 | void ClearInstructionCache() override; | 62 | void ClearInstructionCache() override; |
| 63 | void InvalidateCacheRange(VAddr addr, std::size_t size) override; | 63 | void InvalidateCacheRange(u64 addr, std::size_t size) override; |
| 64 | void PageTableChanged(Common::PageTable& new_page_table, | 64 | void PageTableChanged(Common::PageTable& new_page_table, |
| 65 | std::size_t new_address_space_size_in_bits) override; | 65 | std::size_t new_address_space_size_in_bits) override; |
| 66 | 66 | ||
diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.cpp b/src/core/arm/dynarmic/arm_dynarmic_64.cpp index 7229fdc2a..67073c84d 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_64.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic_64.cpp | |||
| @@ -117,7 +117,7 @@ public: | |||
| 117 | } | 117 | } |
| 118 | 118 | ||
| 119 | void InstructionCacheOperationRaised(Dynarmic::A64::InstructionCacheOperation op, | 119 | void InstructionCacheOperationRaised(Dynarmic::A64::InstructionCacheOperation op, |
| 120 | VAddr value) override { | 120 | u64 value) override { |
| 121 | switch (op) { | 121 | switch (op) { |
| 122 | case Dynarmic::A64::InstructionCacheOperation::InvalidateByVAToPoU: { | 122 | case Dynarmic::A64::InstructionCacheOperation::InvalidateByVAToPoU: { |
| 123 | static constexpr u64 ICACHE_LINE_SIZE = 64; | 123 | static constexpr u64 ICACHE_LINE_SIZE = 64; |
| @@ -199,7 +199,7 @@ public: | |||
| 199 | return parent.system.CoreTiming().GetClockTicks(); | 199 | return parent.system.CoreTiming().GetClockTicks(); |
| 200 | } | 200 | } |
| 201 | 201 | ||
| 202 | bool CheckMemoryAccess(VAddr addr, u64 size, Kernel::DebugWatchpointType type) { | 202 | bool CheckMemoryAccess(u64 addr, u64 size, Kernel::DebugWatchpointType type) { |
| 203 | if (!check_memory_access) { | 203 | if (!check_memory_access) { |
| 204 | return true; | 204 | return true; |
| 205 | } | 205 | } |
| @@ -452,7 +452,7 @@ u64 ARM_Dynarmic_64::GetTlsAddress() const { | |||
| 452 | return cb->tpidrro_el0; | 452 | return cb->tpidrro_el0; |
| 453 | } | 453 | } |
| 454 | 454 | ||
| 455 | void ARM_Dynarmic_64::SetTlsAddress(VAddr address) { | 455 | void ARM_Dynarmic_64::SetTlsAddress(u64 address) { |
| 456 | cb->tpidrro_el0 = address; | 456 | cb->tpidrro_el0 = address; |
| 457 | } | 457 | } |
| 458 | 458 | ||
| @@ -500,7 +500,7 @@ void ARM_Dynarmic_64::ClearInstructionCache() { | |||
| 500 | jit.load()->ClearCache(); | 500 | jit.load()->ClearCache(); |
| 501 | } | 501 | } |
| 502 | 502 | ||
| 503 | void ARM_Dynarmic_64::InvalidateCacheRange(VAddr addr, std::size_t size) { | 503 | void ARM_Dynarmic_64::InvalidateCacheRange(u64 addr, std::size_t size) { |
| 504 | jit.load()->InvalidateCacheRange(addr, size); | 504 | jit.load()->InvalidateCacheRange(addr, size); |
| 505 | } | 505 | } |
| 506 | 506 | ||
diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.h b/src/core/arm/dynarmic/arm_dynarmic_64.h index ed1a5eb96..e83599e82 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_64.h +++ b/src/core/arm/dynarmic/arm_dynarmic_64.h | |||
| @@ -38,8 +38,8 @@ public: | |||
| 38 | void SetVectorReg(int index, u128 value) override; | 38 | void SetVectorReg(int index, u128 value) override; |
| 39 | u32 GetPSTATE() const override; | 39 | u32 GetPSTATE() const override; |
| 40 | void SetPSTATE(u32 pstate) override; | 40 | void SetPSTATE(u32 pstate) override; |
| 41 | VAddr GetTlsAddress() const override; | 41 | u64 GetTlsAddress() const override; |
| 42 | void SetTlsAddress(VAddr address) override; | 42 | void SetTlsAddress(u64 address) override; |
| 43 | void SetTPIDR_EL0(u64 value) override; | 43 | void SetTPIDR_EL0(u64 value) override; |
| 44 | u64 GetTPIDR_EL0() const override; | 44 | u64 GetTPIDR_EL0() const override; |
| 45 | 45 | ||
| @@ -53,7 +53,7 @@ public: | |||
| 53 | void ClearExclusiveState() override; | 53 | void ClearExclusiveState() override; |
| 54 | 54 | ||
| 55 | void ClearInstructionCache() override; | 55 | void ClearInstructionCache() override; |
| 56 | void InvalidateCacheRange(VAddr addr, std::size_t size) override; | 56 | void InvalidateCacheRange(u64 addr, std::size_t size) override; |
| 57 | void PageTableChanged(Common::PageTable& new_page_table, | 57 | void PageTableChanged(Common::PageTable& new_page_table, |
| 58 | std::size_t new_address_space_size_in_bits) override; | 58 | std::size_t new_address_space_size_in_bits) override; |
| 59 | 59 | ||