parlib: Align the stack when saving FP state We need the sigdata struct to be aligned properly for the FPU save/restore. Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
diff --git a/user/parlib/signal.c b/user/parlib/signal.c index 2900694..e44516e 100644 --- a/user/parlib/signal.c +++ b/user/parlib/signal.c
@@ -162,6 +162,7 @@ assert(current_uthread == uthread); ctx = &vcpd_of(vcore_id())->uthread_ctx; stack = get_user_ctx_sp(ctx) - sizeof(struct sigdata); + stack = ROUNDDOWN(stack, __alignof__(struct sigdata)); assert(stack_ptr_is_sane(stack)); uthread->sigstate.data = (struct sigdata*)stack; save_fp_state(&uthread->sigstate.data->as);