Module Name:    src
Committed By:   thorpej
Date:           Wed Oct 21 01:24:05 UTC 2020

Modified Files:
        src/lib/libc/arch/alpha: genassym.cf
        src/lib/libc/arch/alpha/gen: __setjmp14.S swapcontext.S
        src/lib/libc/arch/alpha/sys: __sigtramp2.S getcontext.S

Log Message:
- Consistently use _REG_* defines from assym.h to mean register numbers,
  not offsets (i.e. *8 to get the offset).
- Define and use SIZEOF_SIGINFO and UC_GREGS constants, rather than
  hard-code magic numbers.

NFC -- same object code is generated.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/lib/libc/arch/alpha/genassym.cf
cvs rdiff -u -r1.7 -r1.8 src/lib/libc/arch/alpha/gen/__setjmp14.S
cvs rdiff -u -r1.3 -r1.4 src/lib/libc/arch/alpha/gen/swapcontext.S
cvs rdiff -u -r1.2 -r1.3 src/lib/libc/arch/alpha/sys/__sigtramp2.S
cvs rdiff -u -r1.3 -r1.4 src/lib/libc/arch/alpha/sys/getcontext.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/alpha/genassym.cf
diff -u src/lib/libc/arch/alpha/genassym.cf:1.2 src/lib/libc/arch/alpha/genassym.cf:1.3
--- src/lib/libc/arch/alpha/genassym.cf:1.2	Mon Apr 28 20:22:55 2008
+++ src/lib/libc/arch/alpha/genassym.cf	Wed Oct 21 01:24:04 2020
@@ -1,4 +1,4 @@
-#	$NetBSD: genassym.cf,v 1.2 2008/04/28 20:22:55 martin Exp $
+#	$NetBSD: genassym.cf,v 1.3 2020/10/21 01:24:04 thorpej Exp $
 
 #
 # Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -34,41 +34,41 @@ include <machine/reg.h>
 include <ucontext.h>
 include <signal.h>
 
-define _REG_V0		8*_REG_V0	/* 0 */
-define _REG_T0		8*_REG_T0	/* 1 */
-define _REG_T1		8*_REG_T1	/* 2 */
-define _REG_T2		8*_REG_T2	/* 3 */
-define _REG_T3		8*_REG_T3	/* 4 */
-define _REG_T4		8*_REG_T4	/* 5 */
-define _REG_T5		8*_REG_T5	/* 6 */
-define _REG_T6		8*_REG_T6	/* 7 */
-define _REG_T7		8*_REG_T7	/* 8 */
-define _REG_S0		8*_REG_S0	/* 9 */
-define _REG_S1		8*_REG_S1	/* 10 */
-define _REG_S2		8*_REG_S2	/* 11 */
-define _REG_S3		8*_REG_S3	/* 12 */
-define _REG_S4		8*_REG_S4	/* 13 */
-define _REG_S5		8*_REG_S5	/* 14 */
-define _REG_S6		8*_REG_S6	/* 15 */
-define _REG_A0		8*_REG_A0	/* 16 */
-define _REG_A1		8*_REG_A1	/* 17 */
-define _REG_A2		8*_REG_A2	/* 18 */
-define _REG_A3		8*_REG_A3	/* 19 */
-define _REG_A4		8*_REG_A4	/* 20 */
-define _REG_A5		8*_REG_A5	/* 21 */
-define _REG_T8		8*_REG_T8	/* 22 */
-define _REG_T9		8*_REG_T9	/* 23 */
-define _REG_T10		8*_REG_T10	/* 24 */
-define _REG_T11		8*_REG_T11	/* 25 */
-define _REG_RA		8*_REG_RA	/* 26 */
-define _REG_T12		8*_REG_T12	/* 27 */
-define _REG_PV		8*_REG_PV	/* 27 */
-define _REG_AT		8*_REG_AT	/* 28 */
-define _REG_GP		8*_REG_GP	/* 29 */
-define _REG_SP		8*_REG_SP	/* 30 */
-define _REG_UNIQUE	8*_REG_UNIQUE	/* 31 */
-define _REG_PC		8*_REG_PC	/* 32 */
-define _REG_PS		8*_REG_PS	/* 33 */
+define _REG_V0		_REG_V0		/* 0 */
+define _REG_T0		_REG_T0		/* 1 */
+define _REG_T1		_REG_T1		/* 2 */
+define _REG_T2		_REG_T2		/* 3 */
+define _REG_T3		_REG_T3		/* 4 */
+define _REG_T4		_REG_T4		/* 5 */
+define _REG_T5		_REG_T5		/* 6 */
+define _REG_T6		_REG_T6		/* 7 */
+define _REG_T7		_REG_T7		/* 8 */
+define _REG_S0		_REG_S0		/* 9 */
+define _REG_S1		_REG_S1		/* 10 */
+define _REG_S2		_REG_S2		/* 11 */
+define _REG_S3		_REG_S3		/* 12 */
+define _REG_S4		_REG_S4		/* 13 */
+define _REG_S5		_REG_S5		/* 14 */
+define _REG_S6		_REG_S6		/* 15 */
+define _REG_A0		_REG_A0		/* 16 */
+define _REG_A1		_REG_A1		/* 17 */
+define _REG_A2		_REG_A2		/* 18 */
+define _REG_A3		_REG_A3		/* 19 */
+define _REG_A4		_REG_A4		/* 20 */
+define _REG_A5		_REG_A5		/* 21 */
+define _REG_T8		_REG_T8		/* 22 */
+define _REG_T9		_REG_T9		/* 23 */
+define _REG_T10		_REG_T10	/* 24 */
+define _REG_T11		_REG_T11	/* 25 */
+define _REG_RA		_REG_RA		/* 26 */
+define _REG_T12		_REG_T12	/* 27 */
+define _REG_PV		_REG_PV		/* 27 */
+define _REG_AT		_REG_AT		/* 28 */
+define _REG_GP		_REG_GP		/* 29 */
+define _REG_SP		_REG_SP		/* 30 */
+define _REG_UNIQUE	_REG_UNIQUE	/* 31 */
+define _REG_PC		_REG_PC		/* 32 */
+define _REG_PS		_REG_PS		/* 33 */
 
 define	SC_ONSTACK	offsetof(struct sigcontext, sc_onstack)
 define	SC_SP		offsetof(struct sigcontext, sc_sp)
@@ -82,3 +82,7 @@ define	SC_FP_CONTROL	offsetof(struct sig
 define	SC_MASK		offsetof(struct sigcontext, sc_mask)
 define	SC_RESERVED	offsetof(struct sigcontext, sc_reserved)
 define	SC_XXX		offsetof(struct sigcontext, sc_xxx)
+
+define	SIZEOF_SIGINFO	sizeof(siginfo_t)
+
+define	UC_GREGS	offsetof(ucontext_t, uc_mcontext.__gregs)

Index: src/lib/libc/arch/alpha/gen/__setjmp14.S
diff -u src/lib/libc/arch/alpha/gen/__setjmp14.S:1.7 src/lib/libc/arch/alpha/gen/__setjmp14.S:1.8
--- src/lib/libc/arch/alpha/gen/__setjmp14.S:1.7	Thu Jan 23 03:08:50 2014
+++ src/lib/libc/arch/alpha/gen/__setjmp14.S	Wed Oct 21 01:24:05 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: __setjmp14.S,v 1.7 2014/01/23 03:08:50 christos Exp $ */
+/* $NetBSD: __setjmp14.S,v 1.8 2020/10/21 01:24:05 thorpej Exp $ */
 
 /*
  * Copyright (c) 1994, 1995 Carnegie-Mellon University.
@@ -46,16 +46,16 @@
 LEAF(__setjmp14, 1)
 	LDGP(pv)
 	stq	ra, SC_PC(a0)			/* sc_pc = return address */
-	stq	s0, (SC_REGS+_REG_S0)(a0)	/* saved bits of sc_regs */
-	stq	s1, (SC_REGS+_REG_S1)(a0)
-	stq	s2, (SC_REGS+_REG_S2)(a0)
-	stq	s3, (SC_REGS+_REG_S3)(a0)
-	stq	s4, (SC_REGS+_REG_S4)(a0)
-	stq	s5, (SC_REGS+_REG_S5)(a0)
-	stq	s6, (SC_REGS+_REG_S6)(a0)
-	stq	ra, (SC_REGS+_REG_RA)(a0)
-	stq	sp, (SC_REGS+_REG_SP)(a0)
-	stq	gp, (SC_REGS+_REG_GP)(a0)
+	stq	s0, (SC_REGS+_REG_S0*8)(a0)	/* saved bits of sc_regs */
+	stq	s1, (SC_REGS+_REG_S1*8)(a0)
+	stq	s2, (SC_REGS+_REG_S2*8)(a0)
+	stq	s3, (SC_REGS+_REG_S3*8)(a0)
+	stq	s4, (SC_REGS+_REG_S4*8)(a0)
+	stq	s5, (SC_REGS+_REG_S5*8)(a0)
+	stq	s6, (SC_REGS+_REG_S6*8)(a0)
+	stq	ra, (SC_REGS+_REG_RA*8)(a0)
+	stq	sp, (SC_REGS+_REG_SP*8)(a0)
+	stq	gp, (SC_REGS+_REG_GP*8)(a0)
 
 	/*
 	 * get signal information
@@ -74,7 +74,7 @@ LEAF(__setjmp14, 1)
 	CALL(__sigaltstack14)
 	ldl	t0, 16(sp)			/* offset of ss_flags */
 	lda	sp, 24(sp)			/* sizeof struct sigaltstack */
-	ldq	ra, (SC_REGS+_REG_RA)(s0)	/* restore return address */
+	ldq	ra, (SC_REGS+_REG_RA*8)(s0)	/* restore return address */
 	blt	v0, botch			/* check for error */
 	and	t0, 0x1, t0			/* get SA_ONSTACK flag */
 	stq	t0, SC_ONSTACK(s0)		/* and save it in sc_onstack */
@@ -82,10 +82,10 @@ LEAF(__setjmp14, 1)
 	 * Restore old s0 and a0, and continue saving registers
 	 */
 	mov	s0, a0
-	ldq	s0, (SC_REGS+_REG_S0)(a0)
+	ldq	s0, (SC_REGS+_REG_S0*8)(a0)
 
 	ldq	t0, magic		 	/* sigcontext magic number */
-	stq	t0, (SC_REGS+_REG_UNIQUE)(a0)	/* magic in sc_regs[31] */
+	stq	t0, (SC_REGS+_REG_UNIQUE*8)(a0)	/* magic in sc_regs[31] */
 	/* Too bad we can't check if we actually used FP */
 	ldiq	t0, 1
 	stq	t0, SC_OWNEDFP(a0)		/* say we've used FP.  */

Index: src/lib/libc/arch/alpha/gen/swapcontext.S
diff -u src/lib/libc/arch/alpha/gen/swapcontext.S:1.3 src/lib/libc/arch/alpha/gen/swapcontext.S:1.4
--- src/lib/libc/arch/alpha/gen/swapcontext.S:1.3	Mon Apr 28 20:22:55 2008
+++ src/lib/libc/arch/alpha/gen/swapcontext.S	Wed Oct 21 01:24:05 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: swapcontext.S,v 1.3 2008/04/28 20:22:55 martin Exp $	*/
+/*	$NetBSD: swapcontext.S,v 1.4 2020/10/21 01:24:05 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -30,6 +30,7 @@
  */
 
 #include "SYS.h"
+#include "assym.h"
 
 NESTED(swapcontext, 2, 24, ra, IM_RA|IM_A0|IM_A1, 0)
 	LDGP(pv)
@@ -41,10 +42,10 @@ NESTED(swapcontext, 2, 24, ra, IM_RA|IM_
 	ldq	t0, (24-16)(sp)
 	bne	v0, Lerr
 	ldq	t1, (24- 8)(sp)
-	stq	t1, (56 + 26 * 8)(t0)	/* Adjust saved RA */
-	stq	t1, (56 + 32 * 8)(t0)	/* Adjust saved PC */
+	stq	t1, (UC_GREGS + _REG_RA*8)(t0)	/* Adjust saved RA */
+	stq	t1, (UC_GREGS + _REG_PC*8)(t0)	/* Adjust saved PC */
 	lda	t1, 24(sp)
-	stq	t1, (56 + 30 * 8)(t0)	/* Adjust saved SP */
+	stq	t1, (UC_GREGS + _REG_SP*8)(t0)	/* Adjust saved SP */
 
 	ldq	a0, (24-24)(sp)
 	CALL(setcontext)		/* setcontext(ucp) */

Index: src/lib/libc/arch/alpha/sys/__sigtramp2.S
diff -u src/lib/libc/arch/alpha/sys/__sigtramp2.S:1.2 src/lib/libc/arch/alpha/sys/__sigtramp2.S:1.3
--- src/lib/libc/arch/alpha/sys/__sigtramp2.S:1.2	Wed Nov  8 21:16:40 2006
+++ src/lib/libc/arch/alpha/sys/__sigtramp2.S	Wed Oct 21 01:24:05 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: __sigtramp2.S,v 1.2 2006/11/08 21:16:40 drochner Exp $	*/
+/*	$NetBSD: __sigtramp2.S,v 1.3 2020/10/21 01:24:05 thorpej Exp $	*/
 
 /*
  * Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University.
@@ -28,6 +28,7 @@
  */
 
 #include "SYS.h"
+#include "assym.h"
 
 /*
  * The Alpha signal trampoline is invoked only to return from
@@ -40,7 +41,7 @@
  */
 NESTED_NOPROFILE(__sigtramp_siginfo_2,0,0,ra,0,0)
 	ldgp	gp,0(ra)
-	lda	a0,(128)(sp)		/* get pointer to ucontext */
+	lda	a0,(SIZEOF_SIGINFO)(sp)	/* get pointer to ucontext */
 	CALLSYS_NOERROR(setcontext)	/* and call setcontext() with it */
 	ldiq	a0,-1			/* if that failed, set an exit code */
 	CALLSYS_NOERROR(exit)		/* and call exit() */

Index: src/lib/libc/arch/alpha/sys/getcontext.S
diff -u src/lib/libc/arch/alpha/sys/getcontext.S:1.3 src/lib/libc/arch/alpha/sys/getcontext.S:1.4
--- src/lib/libc/arch/alpha/sys/getcontext.S:1.3	Mon Apr 28 20:22:55 2008
+++ src/lib/libc/arch/alpha/sys/getcontext.S	Wed Oct 21 01:24:05 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: getcontext.S,v 1.3 2008/04/28 20:22:55 martin Exp $	*/
+/*	$NetBSD: getcontext.S,v 1.4 2020/10/21 01:24:05 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -30,6 +30,7 @@
  */
 
 #include "SYS.h"
+#include "assym.h"
 
 #ifdef WEAK_ALIAS
 WEAK_ALIAS(getcontext, _getcontext)
@@ -37,7 +38,7 @@ WEAK_ALIAS(getcontext, _getcontext)
 
 LEAF(_getcontext, 1)
 	CALLSYS_ERROR(getcontext)
-	stq	ra, (56 + 32 * 8)(a0)	/* Adjust saved PC */
-	stq	zero, (56 + 0 * 8)(a0)	/* Arrange for a return value of 0 */
+	stq	ra, (UC_GREGS + _REG_PC*8)(a0)	/* Adjust saved PC */
+	stq	zero, (UC_GREGS + _REG_V0*8)(a0)/* Arrange for a rv of 0 */
 	RET
 END(_getcontext)

Reply via email to