summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_32.cpp23
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
412void ARM_Dynarmic_32::SaveContext(ThreadContext32& ctx) { 411void 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
421void ARM_Dynarmic_32::LoadContext(const ThreadContext32& ctx) { 419void 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
430void ARM_Dynarmic_32::SignalInterrupt() { 427void ARM_Dynarmic_32::SignalInterrupt() {