summaryrefslogtreecommitdiff
path: root/src/core/arm
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/arm')
-rw-r--r--src/core/arm/arm_interface.cpp10
-rw-r--r--src/core/arm/arm_interface.h8
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_32.cpp6
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_32.h6
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_64.cpp8
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_64.h6
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
170const Kernel::DebugWatchpoint* ARM_Interface::MatchingWatchpoint( 170const 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
400void ARM_Dynarmic_32::SetTlsAddress(VAddr address) { 400void 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
442void ARM_Dynarmic_32::InvalidateCacheRange(VAddr addr, std::size_t size) { 442void 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
455void ARM_Dynarmic_64::SetTlsAddress(VAddr address) { 455void 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
503void ARM_Dynarmic_64::InvalidateCacheRange(VAddr addr, std::size_t size) { 503void 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