Index: sys/arm64/arm64/exec_machdep.c =================================================================== --- sys/arm64/arm64/exec_machdep.c +++ sys/arm64/arm64/exec_machdep.c @@ -596,10 +596,9 @@ tf->tf_x[0] = sig; tf->tf_x[1] = (register_t)&fp->sf_si; tf->tf_x[2] = (register_t)&fp->sf_uc; - - tf->tf_elr = (register_t)catcher; + tf->tf_x[8] = (register_t)catcher; tf->tf_sp = (register_t)fp; - tf->tf_lr = (register_t)p->p_sysent->sv_sigcode_base; + tf->tf_elr = (register_t)p->p_sysent->sv_sigcode_base; CTR3(KTR_SIG, "sendsig: return td=%p pc=%#x sp=%#x", td, tf->tf_elr, tf->tf_sp); Index: sys/arm64/arm64/sigtramp.S =================================================================== --- sys/arm64/arm64/sigtramp.S +++ sys/arm64/arm64/sigtramp.S @@ -31,6 +31,7 @@ #include ENTRY(sigcode) + blr x8 mov x0, sp add x0, x0, #SF_UC