diff options
| author | 2018-07-21 11:38:16 -0700 | |
|---|---|---|
| committer | 2018-07-21 11:38:16 -0700 | |
| commit | de7cb91995666db7c469feab7bfe90be2156173d (patch) | |
| tree | 5009c848fbc5d75c3612387564ac41267e19d96f | |
| parent | Merge pull request #756 from lioncash/dynarmic (diff) | |
| parent | arm_interface: Remove unused tls_address member of ThreadContext (diff) | |
| download | yuzu-de7cb91995666db7c469feab7bfe90be2156173d.tar.gz yuzu-de7cb91995666db7c469feab7bfe90be2156173d.tar.xz yuzu-de7cb91995666db7c469feab7bfe90be2156173d.zip | |
Merge pull request #750 from lioncash/ctx
arm_interface: Remove unused tls_address member of ThreadContext
Diffstat (limited to '')
| -rw-r--r-- | src/core/arm/arm_interface.h | 3 | ||||
| -rw-r--r-- | src/core/arm/dynarmic/arm_dynarmic.cpp | 2 | ||||
| -rw-r--r-- | src/core/arm/unicorn/arm_unicorn.cpp | 4 |
3 files changed, 0 insertions, 9 deletions
diff --git a/src/core/arm/arm_interface.h b/src/core/arm/arm_interface.h index 28a99defe..b0d7ced7f 100644 --- a/src/core/arm/arm_interface.h +++ b/src/core/arm/arm_interface.h | |||
| @@ -20,9 +20,6 @@ public: | |||
| 20 | u64 cpsr; | 20 | u64 cpsr; |
| 21 | std::array<u128, 32> fpu_registers; | 21 | std::array<u128, 32> fpu_registers; |
| 22 | u64 fpscr; | 22 | u64 fpscr; |
| 23 | |||
| 24 | // TODO(bunnei): Fix once we have proper support for tpidrro_el0, etc. in the JIT | ||
| 25 | VAddr tls_address; | ||
| 26 | }; | 23 | }; |
| 27 | 24 | ||
| 28 | /// Runs the CPU until an event happens | 25 | /// Runs the CPU until an event happens |
diff --git a/src/core/arm/dynarmic/arm_dynarmic.cpp b/src/core/arm/dynarmic/arm_dynarmic.cpp index df47d5ee8..5d7efc9b6 100644 --- a/src/core/arm/dynarmic/arm_dynarmic.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic.cpp | |||
| @@ -211,7 +211,6 @@ void ARM_Dynarmic::SaveContext(ARM_Interface::ThreadContext& ctx) { | |||
| 211 | ctx.cpsr = jit->GetPstate(); | 211 | ctx.cpsr = jit->GetPstate(); |
| 212 | ctx.fpu_registers = jit->GetVectors(); | 212 | ctx.fpu_registers = jit->GetVectors(); |
| 213 | ctx.fpscr = jit->GetFpcr(); | 213 | ctx.fpscr = jit->GetFpcr(); |
| 214 | ctx.tls_address = cb->tpidrro_el0; | ||
| 215 | } | 214 | } |
| 216 | 215 | ||
| 217 | void ARM_Dynarmic::LoadContext(const ARM_Interface::ThreadContext& ctx) { | 216 | void ARM_Dynarmic::LoadContext(const ARM_Interface::ThreadContext& ctx) { |
| @@ -221,7 +220,6 @@ void ARM_Dynarmic::LoadContext(const ARM_Interface::ThreadContext& ctx) { | |||
| 221 | jit->SetPstate(static_cast<u32>(ctx.cpsr)); | 220 | jit->SetPstate(static_cast<u32>(ctx.cpsr)); |
| 222 | jit->SetVectors(ctx.fpu_registers); | 221 | jit->SetVectors(ctx.fpu_registers); |
| 223 | jit->SetFpcr(static_cast<u32>(ctx.fpscr)); | 222 | jit->SetFpcr(static_cast<u32>(ctx.fpscr)); |
| 224 | cb->tpidrro_el0 = ctx.tls_address; | ||
| 225 | } | 223 | } |
| 226 | 224 | ||
| 227 | void ARM_Dynarmic::PrepareReschedule() { | 225 | void ARM_Dynarmic::PrepareReschedule() { |
diff --git a/src/core/arm/unicorn/arm_unicorn.cpp b/src/core/arm/unicorn/arm_unicorn.cpp index 44a46bf04..4c11f35a4 100644 --- a/src/core/arm/unicorn/arm_unicorn.cpp +++ b/src/core/arm/unicorn/arm_unicorn.cpp | |||
| @@ -230,8 +230,6 @@ void ARM_Unicorn::SaveContext(ARM_Interface::ThreadContext& ctx) { | |||
| 230 | 230 | ||
| 231 | CHECKED(uc_reg_read_batch(uc, uregs, tregs, 31)); | 231 | CHECKED(uc_reg_read_batch(uc, uregs, tregs, 31)); |
| 232 | 232 | ||
| 233 | ctx.tls_address = GetTlsAddress(); | ||
| 234 | |||
| 235 | for (int i = 0; i < 32; ++i) { | 233 | for (int i = 0; i < 32; ++i) { |
| 236 | uregs[i] = UC_ARM64_REG_Q0 + i; | 234 | uregs[i] = UC_ARM64_REG_Q0 + i; |
| 237 | tregs[i] = &ctx.fpu_registers[i]; | 235 | tregs[i] = &ctx.fpu_registers[i]; |
| @@ -259,8 +257,6 @@ void ARM_Unicorn::LoadContext(const ARM_Interface::ThreadContext& ctx) { | |||
| 259 | 257 | ||
| 260 | CHECKED(uc_reg_write_batch(uc, uregs, tregs, 31)); | 258 | CHECKED(uc_reg_write_batch(uc, uregs, tregs, 31)); |
| 261 | 259 | ||
| 262 | SetTlsAddress(ctx.tls_address); | ||
| 263 | |||
| 264 | for (auto i = 0; i < 32; ++i) { | 260 | for (auto i = 0; i < 32; ++i) { |
| 265 | uregs[i] = UC_ARM64_REG_Q0 + i; | 261 | uregs[i] = UC_ARM64_REG_Q0 + i; |
| 266 | tregs[i] = (void*)&ctx.fpu_registers[i]; | 262 | tregs[i] = (void*)&ctx.fpu_registers[i]; |