From 39553be25486443dad73d4622064cada57e7e1c8 Mon Sep 17 00:00:00 2001 From: eeh Date: Mon, 11 Jan 1999 06:43:51 +0000 Subject: [PATCH] Finally fixed 64-bit signal trampoline. --- sys/arch/sparc64/sparc64/locore.s | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/arch/sparc64/sparc64/locore.s b/sys/arch/sparc64/sparc64/locore.s index cb1fa76788f5..62159a5395f8 100644 --- a/sys/arch/sparc64/sparc64/locore.s +++ b/sys/arch/sparc64/sparc64/locore.s @@ -5386,9 +5386,8 @@ _C_LABEL(sigcode): 2: lduw [%fp + BIAS + CC64FSZ], %o0 ! sig lduw [%fp + BIAS + CC64FSZ + 4], %o1 ! code - add %fp, BIAS + CC64FSZ + 8, %o2 ! scp call %g1 ! (*sa->sa_handler)(sig,code,scp) - andn %o2, 0x0f, %o2 + add %fp, BIAS + 128 + 8, %o2 ! scp /* * Now that the handler has returned, re-establish all the state @@ -5422,8 +5421,8 @@ _C_LABEL(sigcode): mov %l7, %g7 restore %g0, SYS___sigreturn14, %g1 ! get registers back & set syscall # - add %sp, BIAS + CC64FSZ + 8, %o0! compute scp - andn %o0, 0x0f, %o0 + add %sp, BIAS + 128 + 8, %o0! compute scp +! andn %o0, 0x0f, %o0 t ST_SYSCALL ! sigreturn(scp) ! sigreturn does not return unless it fails mov SYS_exit, %g1 ! exit(errno)