diff options
author | bunnei <ericbunnie@gmail.com> | 2014-06-05 06:20:11 +0200 |
---|---|---|
committer | bunnei <ericbunnie@gmail.com> | 2014-06-05 06:20:11 +0200 |
commit | 9ece9da50d7c7827b9eb3bb9cfb007fb4af07061 (patch) | |
tree | e4f644a5ca93dcf18bc5c81259a4db69ff139419 | |
parent | service: added a error log messages for unimplemented WaitSynchronization (diff) | |
download | yuzu-9ece9da50d7c7827b9eb3bb9cfb007fb4af07061.tar yuzu-9ece9da50d7c7827b9eb3bb9cfb007fb4af07061.tar.gz yuzu-9ece9da50d7c7827b9eb3bb9cfb007fb4af07061.tar.bz2 yuzu-9ece9da50d7c7827b9eb3bb9cfb007fb4af07061.tar.lz yuzu-9ece9da50d7c7827b9eb3bb9cfb007fb4af07061.tar.xz yuzu-9ece9da50d7c7827b9eb3bb9cfb007fb4af07061.tar.zst yuzu-9ece9da50d7c7827b9eb3bb9cfb007fb4af07061.zip |
-rw-r--r-- | src/core/arm/interpreter/arm_interpreter.cpp | 7 | ||||
-rw-r--r-- | src/core/hle/svc.h | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/core/arm/interpreter/arm_interpreter.cpp b/src/core/arm/interpreter/arm_interpreter.cpp index 2aa100e86..8030ec56a 100644 --- a/src/core/arm/interpreter/arm_interpreter.cpp +++ b/src/core/arm/interpreter/arm_interpreter.cpp @@ -118,6 +118,9 @@ void ARM_Interpreter::SaveContext(ThreadContext& ctx) { ctx.fpscr = state->VFP[1]; ctx.fpexc = state->VFP[2]; + + ctx.reg_15 = state->Reg[15]; + ctx.mode = state->NextInstr; } /** @@ -137,8 +140,8 @@ void ARM_Interpreter::LoadContext(const ThreadContext& ctx) { state->VFP[1] = ctx.fpscr; state->VFP[2] = ctx.fpexc; - state->Reg[15] = ctx.pc; - state->NextInstr = RESUME; + state->Reg[15] = ctx.reg_15; + state->NextInstr = ctx.mode; } /// Prepare core for thread reschedule (if needed to correctly handle state) diff --git a/src/core/hle/svc.h b/src/core/hle/svc.h index c5170aab7..1d125faf6 100644 --- a/src/core/hle/svc.h +++ b/src/core/hle/svc.h @@ -29,6 +29,10 @@ struct ThreadContext { u32 fpu_registers[32]; u32 fpscr; u32 fpexc; + + // These are not part of native ThreadContext, but needed by emu + u32 reg_15; + u32 mode; }; enum ResetType { |