diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/arm/dynarmic/arm_dynarmic_32.cpp | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.cpp b/src/core/arm/dynarmic/arm_dynarmic_32.cpp index cab21a88e..dfdcbe35a 100644 --- a/src/core/arm/dynarmic/arm_dynarmic_32.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic_32.cpp | |||
| @@ -5,7 +5,6 @@ | |||
| 5 | #include <memory> | 5 | #include <memory> |
| 6 | #include <dynarmic/interface/A32/a32.h> | 6 | #include <dynarmic/interface/A32/a32.h> |
| 7 | #include <dynarmic/interface/A32/config.h> | 7 | #include <dynarmic/interface/A32/config.h> |
| 8 | #include <dynarmic/interface/A32/context.h> | ||
| 9 | #include "common/assert.h" | 8 | #include "common/assert.h" |
| 10 | #include "common/literals.h" | 9 | #include "common/literals.h" |
| 11 | #include "common/logging/log.h" | 10 | #include "common/logging/log.h" |
| @@ -410,21 +409,19 @@ void ARM_Dynarmic_32::SetTPIDR_EL0(u64 value) { | |||
| 410 | } | 409 | } |
| 411 | 410 | ||
| 412 | void ARM_Dynarmic_32::SaveContext(ThreadContext32& ctx) { | 411 | void ARM_Dynarmic_32::SaveContext(ThreadContext32& ctx) { |
| 413 | Dynarmic::A32::Context context; | 412 | Dynarmic::A32::Jit* j = jit.load(); |
| 414 | jit.load()->SaveContext(context); | 413 | ctx.cpu_registers = j->Regs(); |
| 415 | ctx.cpu_registers = context.Regs(); | 414 | ctx.extension_registers = j->ExtRegs(); |
| 416 | ctx.extension_registers = context.ExtRegs(); | 415 | ctx.cpsr = j->Cpsr(); |
| 417 | ctx.cpsr = context.Cpsr(); | 416 | ctx.fpscr = j->Fpscr(); |
| 418 | ctx.fpscr = context.Fpscr(); | ||
| 419 | } | 417 | } |
| 420 | 418 | ||
| 421 | void ARM_Dynarmic_32::LoadContext(const ThreadContext32& ctx) { | 419 | void ARM_Dynarmic_32::LoadContext(const ThreadContext32& ctx) { |
| 422 | Dynarmic::A32::Context context; | 420 | Dynarmic::A32::Jit* j = jit.load(); |
| 423 | context.Regs() = ctx.cpu_registers; | 421 | j->Regs() = ctx.cpu_registers; |
| 424 | context.ExtRegs() = ctx.extension_registers; | 422 | j->ExtRegs() = ctx.extension_registers; |
| 425 | context.SetCpsr(ctx.cpsr); | 423 | j->SetCpsr(ctx.cpsr); |
| 426 | context.SetFpscr(ctx.fpscr); | 424 | j->SetFpscr(ctx.fpscr); |
| 427 | jit.load()->LoadContext(context); | ||
| 428 | } | 425 | } |
| 429 | 426 | ||
| 430 | void ARM_Dynarmic_32::SignalInterrupt() { | 427 | void ARM_Dynarmic_32::SignalInterrupt() { |