Merge pull request #3707 from lateralusX/jlorenss/win-api-family-support-libmonoutils
[mono.git] / mono / utils / mach-support-arm.c
index 68b327c197b7b1ce71e79802827d72bcdd28cb9a..d535fbc18ddce3689a7701acc1da0cd4eeca0492 100644 (file)
@@ -83,6 +83,20 @@ mono_mach_arch_mcontext_to_thread_state (void *context, thread_state_t state)
        *arch_state = ctx->__ss;
 }
 
+void
+mono_mach_arch_thread_state_to_mono_context (thread_state_t state, MonoContext *context)
+{
+       int i;
+       arm_thread_state_t *arch_state = (arm_thread_state_t *) state;
+       for (i = 0; i < 13; ++i)
+               context->regs [i] = arch_state->__r [i];
+       context->regs [ARMREG_R13] = arch_state->__sp;
+       context->regs [ARMREG_R14] = arch_state->__lr;
+       context->regs [ARMREG_R15] = arch_state->__pc;
+       context->pc = arch_state->__pc;
+       context->cpsr = arch_state->__cpsr;
+}
+
 int
 mono_mach_arch_get_thread_state_size ()
 {