// FIX ME: This is not complete void mono_arch_setup_async_callback (MonoContext *ctx, void (*async_cb)(void *fun), gpointer user_data) { uintptr_t sp = (uintptr_t) MONO_CONTEXT_GET_SP(ctx); ctx->regs [PPC_FIRST_ARG_REG] = user_data; sp -= PPC_MINIMAL_STACK_SIZE; *(unsigned long *)sp = MONO_CONTEXT_GET_SP(ctx); MONO_CONTEXT_SET_BP(ctx, sp); mono_arch_setup_resume_sighandler_ctx(ctx, (unsigned long) async_cb); }
void mono_arch_setup_async_callback (MonoContext *ctx, void (*async_cb)(void *fun), gpointer user_data) { mgreg_t sp = (mgreg_t)MONO_CONTEXT_GET_SP (ctx); // FIXME: g_assert (!user_data); /* Allocate a stack frame */ sp -= 32; MONO_CONTEXT_SET_SP (ctx, sp); mono_arch_setup_resume_sighandler_ctx (ctx, async_cb); }