diff options
Diffstat (limited to 'src/core/arm')
| -rw-r--r-- | src/core/arm/interpreter/arm_interpreter.cpp | 7 |
1 files changed, 5 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) { | |||
| 118 | 118 | ||
| 119 | ctx.fpscr = state->VFP[1]; | 119 | ctx.fpscr = state->VFP[1]; |
| 120 | ctx.fpexc = state->VFP[2]; | 120 | ctx.fpexc = state->VFP[2]; |
| 121 | |||
| 122 | ctx.reg_15 = state->Reg[15]; | ||
| 123 | ctx.mode = state->NextInstr; | ||
| 121 | } | 124 | } |
| 122 | 125 | ||
| 123 | /** | 126 | /** |
| @@ -137,8 +140,8 @@ void ARM_Interpreter::LoadContext(const ThreadContext& ctx) { | |||
| 137 | state->VFP[1] = ctx.fpscr; | 140 | state->VFP[1] = ctx.fpscr; |
| 138 | state->VFP[2] = ctx.fpexc; | 141 | state->VFP[2] = ctx.fpexc; |
| 139 | 142 | ||
| 140 | state->Reg[15] = ctx.pc; | 143 | state->Reg[15] = ctx.reg_15; |
| 141 | state->NextInstr = RESUME; | 144 | state->NextInstr = ctx.mode; |
| 142 | } | 145 | } |
| 143 | 146 | ||
| 144 | /// Prepare core for thread reschedule (if needed to correctly handle state) | 147 | /// Prepare core for thread reschedule (if needed to correctly handle state) |