Module Name:    src
Committed By:   ad
Date:           Sat May 16 22:20:42 UTC 2009

Modified Files:
        src/lib/libpthread/arch/alpha: pthread_md.h
        src/lib/libpthread/arch/arm: pthread_md.h
        src/lib/libpthread/arch/hppa: pthread_md.h
        src/lib/libpthread/arch/i386: pthread_md.h
        src/lib/libpthread/arch/m68k: pthread_md.h
        src/lib/libpthread/arch/mips: pthread_md.h
        src/lib/libpthread/arch/powerpc: pthread_md.h
        src/lib/libpthread/arch/powerpc64: pthread_md.h
        src/lib/libpthread/arch/sh3: pthread_md.h
        src/lib/libpthread/arch/sparc: pthread_md.h
        src/lib/libpthread/arch/sparc64: pthread_md.h
        src/lib/libpthread/arch/vax: pthread_md.h
Added Files:
        src/lib/libpthread/arch/hppa: pthread_md.S
Removed Files:
        src/lib/libpthread/arch/alpha: _context_u.S genassym.cf
        src/lib/libpthread/arch/arm: _context_u.S genassym.cf
        src/lib/libpthread/arch/hppa: _context_u.S genassym.cf
        src/lib/libpthread/arch/i386: _context_u.S _getsetc.S genassym.cf
            pthread_md.c
        src/lib/libpthread/arch/m68k: _context_u.S genassym.cf
        src/lib/libpthread/arch/mips: SYS.h _context_u.S genassym.cf
        src/lib/libpthread/arch/powerpc: _context_u.S genassym.cf
        src/lib/libpthread/arch/powerpc64: _context_u.S genassym.cf
        src/lib/libpthread/arch/sh3: _context_u.S genassym.cf
        src/lib/libpthread/arch/sparc: _context_u.S genassym.cf
        src/lib/libpthread/arch/sparc64: _context_u.S genassym.cf
        src/lib/libpthread/arch/vax: _context_u.S genassym.cf

Log Message:
Remove unused code that's confusing when using cscope/opengrok.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r0 src/lib/libpthread/arch/alpha/_context_u.S
cvs rdiff -u -r1.7 -r0 src/lib/libpthread/arch/alpha/genassym.cf
cvs rdiff -u -r1.5 -r1.6 src/lib/libpthread/arch/alpha/pthread_md.h
cvs rdiff -u -r1.4 -r0 src/lib/libpthread/arch/arm/_context_u.S
cvs rdiff -u -r1.7 -r0 src/lib/libpthread/arch/arm/genassym.cf
cvs rdiff -u -r1.4 -r1.5 src/lib/libpthread/arch/arm/pthread_md.h
cvs rdiff -u -r1.4 -r0 src/lib/libpthread/arch/hppa/_context_u.S
cvs rdiff -u -r1.3 -r0 src/lib/libpthread/arch/hppa/genassym.cf
cvs rdiff -u -r0 -r1.1 src/lib/libpthread/arch/hppa/pthread_md.S
cvs rdiff -u -r1.6 -r1.7 src/lib/libpthread/arch/hppa/pthread_md.h
cvs rdiff -u -r1.9 -r0 src/lib/libpthread/arch/i386/_context_u.S
cvs rdiff -u -r1.8 -r0 src/lib/libpthread/arch/i386/_getsetc.S
cvs rdiff -u -r1.7 -r0 src/lib/libpthread/arch/i386/genassym.cf
cvs rdiff -u -r1.6 -r0 src/lib/libpthread/arch/i386/pthread_md.c
cvs rdiff -u -r1.16 -r1.17 src/lib/libpthread/arch/i386/pthread_md.h
cvs rdiff -u -r1.5 -r0 src/lib/libpthread/arch/m68k/_context_u.S
cvs rdiff -u -r1.7 -r0 src/lib/libpthread/arch/m68k/genassym.cf
cvs rdiff -u -r1.6 -r1.7 src/lib/libpthread/arch/m68k/pthread_md.h
cvs rdiff -u -r1.3 -r0 src/lib/libpthread/arch/mips/SYS.h \
    src/lib/libpthread/arch/mips/_context_u.S
cvs rdiff -u -r1.7 -r0 src/lib/libpthread/arch/mips/genassym.cf
cvs rdiff -u -r1.7 -r1.8 src/lib/libpthread/arch/mips/pthread_md.h
cvs rdiff -u -r1.5 -r0 src/lib/libpthread/arch/powerpc/_context_u.S
cvs rdiff -u -r1.7 -r0 src/lib/libpthread/arch/powerpc/genassym.cf
cvs rdiff -u -r1.5 -r1.6 src/lib/libpthread/arch/powerpc/pthread_md.h
cvs rdiff -u -r1.1 -r0 src/lib/libpthread/arch/powerpc64/_context_u.S
cvs rdiff -u -r1.2 -r0 src/lib/libpthread/arch/powerpc64/genassym.cf
cvs rdiff -u -r1.1 -r1.2 src/lib/libpthread/arch/powerpc64/pthread_md.h
cvs rdiff -u -r1.6 -r0 src/lib/libpthread/arch/sh3/_context_u.S
cvs rdiff -u -r1.8 -r0 src/lib/libpthread/arch/sh3/genassym.cf
cvs rdiff -u -r1.6 -r1.7 src/lib/libpthread/arch/sh3/pthread_md.h
cvs rdiff -u -r1.3 -r0 src/lib/libpthread/arch/sparc/_context_u.S
cvs rdiff -u -r1.8 -r0 src/lib/libpthread/arch/sparc/genassym.cf
cvs rdiff -u -r1.6 -r1.7 src/lib/libpthread/arch/sparc/pthread_md.h
cvs rdiff -u -r1.3 -r0 src/lib/libpthread/arch/sparc64/_context_u.S
cvs rdiff -u -r1.8 -r0 src/lib/libpthread/arch/sparc64/genassym.cf
cvs rdiff -u -r1.5 -r1.6 src/lib/libpthread/arch/sparc64/pthread_md.h
cvs rdiff -u -r1.4 -r0 src/lib/libpthread/arch/vax/_context_u.S
cvs rdiff -u -r1.8 -r0 src/lib/libpthread/arch/vax/genassym.cf
cvs rdiff -u -r1.6 -r1.7 src/lib/libpthread/arch/vax/pthread_md.h

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

Modified files:

Index: src/lib/libpthread/arch/alpha/pthread_md.h
diff -u src/lib/libpthread/arch/alpha/pthread_md.h:1.5 src/lib/libpthread/arch/alpha/pthread_md.h:1.6
--- src/lib/libpthread/arch/alpha/pthread_md.h:1.5	Mon Apr 28 20:23:02 2008
+++ src/lib/libpthread/arch/alpha/pthread_md.h	Sat May 16 22:20:40 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: pthread_md.h,v 1.5 2008/04/28 20:23:02 martin Exp $	*/
+/*	$NetBSD: pthread_md.h,v 1.6 2009/05/16 22:20:40 ad Exp $	*/
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -45,7 +45,6 @@
 }
 
 #define pthread__uc_sp(ucp) ((ucp)->uc_mcontext.__gregs[_REG_SP])
-#define pthread__uc_pc(ucp) ((ucp)->uc_mcontext.__gregs[_REG_PC])
 
 /*
  * Set initial, sane values for registers whose values aren't just
@@ -54,33 +53,5 @@
  */
 #define _INITCONTEXT_U_MD(ucp)						\
 	(ucp)->uc_mcontext.__gregs[_REG_PS] = 0x0008;
-#define STACKSPACE 32	/* 4 quad values */
-/*
- * Conversions between struct reg and struct mcontext. Used by
- * libpthread_dbg.
- */
-
-#define PTHREAD_UCONTEXT_TO_REG(reg, uc) do {				\
-	memcpy(&(reg)->r_regs, &(uc)->uc_mcontext.__gregs,		\
-		31 * sizeof(__greg_t));					\
-	(reg)->r_regs[R_ZERO] = (uc)->uc_mcontext.__gregs[_REG_PC];    	\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_REG_TO_UCONTEXT(uc, reg) do {				\
-	memcpy(&(uc)->uc_mcontext.__gregs, &(reg)->r_regs,		\
-		31 * sizeof(__greg_t));					\
-	(uc)->uc_mcontext.__gregs[_REG_PC] = (reg)->r_regs[R_ZERO];    	\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_CPU) & ~_UC_USER;       	\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_UCONTEXT_TO_FPREG(freg, uc)       			\
-	memcpy((freg), &(uc)->uc_mcontext.__fpregs,			\
-	    sizeof(struct fpreg))					\
-
-#define PTHREAD_FPREG_TO_UCONTEXT(uc, freg) do {       	       		\
-	memcpy(&(uc)->uc_mcontext.__fpregs, (freg),			\
-	    sizeof(struct fpreg));					\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_FPU) & ~_UC_USER;       	\
-	} while (/*CONSTCOND*/0)
 
 #endif /* _LIB_PTHREAD_ALPHA_MD_H */

Index: src/lib/libpthread/arch/arm/pthread_md.h
diff -u src/lib/libpthread/arch/arm/pthread_md.h:1.4 src/lib/libpthread/arch/arm/pthread_md.h:1.5
--- src/lib/libpthread/arch/arm/pthread_md.h:1.4	Sat Dec 24 21:11:16 2005
+++ src/lib/libpthread/arch/arm/pthread_md.h	Sat May 16 22:20:40 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: pthread_md.h,v 1.4 2005/12/24 21:11:16 perry Exp $	*/
+/*	$NetBSD: pthread_md.h,v 1.5 2009/05/16 22:20:40 ad Exp $	*/
 
 /*
  * Copyright (c) 2001 Wasabi Systems, Inc.
@@ -50,7 +50,6 @@
 }
 
 #define	pthread__uc_sp(ucp)	((ucp)->uc_mcontext.__gregs[_REG_SP])
-#define	pthread__uc_pc(ucp)	((ucp)->uc_mcontext.__gregs[_REG_PC])
 
 /*
  * Set initial, sane values for registers whose values aren't just
@@ -67,72 +66,4 @@
 	(ucp)->uc_mcontext.__gregs[_REG_CPSR] = 0x10;
 #endif
 
-/*
- * Usable stack space below the ucontext_t.
- *    For a good time, see comments in pthread_switch.S and
- *    ../i386/pthread_switch.S about STACK_SWITCH.
- */
-#define	STACKSPACE		(6 * sizeof(long))
-
-/*
- * Conversions between struct reg and struct mcontext.  Used by
- * libpthread_dbg.
- */
-
-#define	PTHREAD_ARM_UCONTEXT_TO_REG(reg, uc)				\
-do {									\
-	int _reg_;							\
-									\
-	for (_reg_ = 0; _reg_ <= 12; _reg_++)				\
-		(reg)->r[_reg_] =					\
-		    (uc)->uc_mcontext.__gregs[_REG_R0 + _reg_];		\
-	(reg)->r_sp = (uc)->uc_mcontext.__gregs[_REG_SP];		\
-	(reg)->r_lr = (uc)->uc_mcontext.__gregs[_REG_LR];		\
-	(reg)->r_pc = (uc)->uc_mcontext.__gregs[_REG_PC];		\
-	(reg)->r_cpsr = (uc)->uc_mcontext.__gregs[_REG_CPSR];		\
-} while (/*CONSTCOND*/0)
-
-#ifdef __APCS_26__
-#define PTHREAD_UCONTEXT_TO_REG(reg, uc) PTHREAD_ARM_UCONTEXT_TO_REG((reg), (uc))
-#else
-/* Need to signal in the CPSR that this is 32-bit ARM */
-#define PTHREAD_UCONTEXT_TO_REG(reg, uc)				\
-do {									\
-	PTHREAD_ARM_UCONTEXT_TO_REG((reg), (uc));			\
-	if ((uc)->uc_flags & _UC_USER)					\
-		(reg)->r_cpsr = 0x10;					\
-} while (/*CONSTCOND*/0)
-#endif
-
-
-#define	PTHREAD_REG_TO_UCONTEXT(uc, reg)				\
-do {									\
-	int _reg_;							\
-									\
-	for (_reg_ = 0; _reg_ <= 12; _reg_++)				\
-		(uc)->uc_mcontext.__gregs[_REG_R0 + _reg_] =		\
-		    (reg)->r[_reg_];					\
-	(uc)->uc_mcontext.__gregs[_REG_SP] = (reg)->r_sp;		\
-	(uc)->uc_mcontext.__gregs[_REG_LR] = (reg)->r_lr;		\
-	(uc)->uc_mcontext.__gregs[_REG_PC] = (reg)->r_pc;		\
-	(uc)->uc_mcontext.__gregs[_REG_CPSR] = (reg)->r_cpsr;		\
-} while (/*CONSTCOND*/0)
-
-/*
- * XXX Need to deal with VFP.
- */
-#define	PTHREAD_UCONTEXT_TO_FPREG(freg, uc)				\
-do {									\
-	(freg)->fpr_fpsr = (uc)->uc_mcontext.__fpu.__fpregs.__fp_fpsr;	\
-	memcpy((freg)->fpr, (uc)->uc_mcontext.__fpu.__fpregs.__fp_fr,	\
-	    sizeof((freg)->fpr));					\
-} while (/*CONSTCOND*/0)
-
-#define	PTHREAD_FPREG_TO_UCONTEXT(uc, freg)				\
-do {									\
-	(uc)->uc_mcontext.__fpu.__fpregs.__fp_fpsr = (freg)->fpr_fpsr;	\
-	memcpy((uc)->uc_mcontext.__fpu.__fpregs.__fp_fr, (freg)->fpr,	\
-	    sizeof((uc)->uc_mcontext.__fpu.__fpregs.__fp_fr));		\
-} while (/*CONSTCOND*/0)
-
 #endif /* _LIB_PTHREAD_ARM_MD_H */

Index: src/lib/libpthread/arch/hppa/pthread_md.h
diff -u src/lib/libpthread/arch/hppa/pthread_md.h:1.6 src/lib/libpthread/arch/hppa/pthread_md.h:1.7
--- src/lib/libpthread/arch/hppa/pthread_md.h:1.6	Mon Apr 28 20:23:02 2008
+++ src/lib/libpthread/arch/hppa/pthread_md.h	Sat May 16 22:20:40 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: pthread_md.h,v 1.6 2008/04/28 20:23:02 martin Exp $	*/
+/*	$NetBSD: pthread_md.h,v 1.7 2009/05/16 22:20:40 ad Exp $	*/
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -45,7 +45,6 @@
 }
 
 #define pthread__uc_sp(ucp) ((ucp)->uc_mcontext.__gregs[_REG_SP])
-#define pthread__uc_pc(ucp) ((ucp)->uc_mcontext.__gregs[_REG_PCOQH])
 
 /*
  * Set initial, sane values for registers whose values aren't just
@@ -59,38 +58,6 @@
  */
 #define STACKSPACE	(HPPA_FRAME_SIZE)
 
-/*
- * Conversions between struct reg and struct mcontext. Used by
- * libpthread_dbg.
- */
-#include <hppa/reg.h>
-
-#define PTHREAD_UCONTEXT_TO_REG(reg, uc)				\
-do {									\
-	memcpy(&(reg)->r_regs, &(uc)->uc_mcontext.__gregs,		\
-	    sizeof(__greg_t) * 32);					\
-} while (/*CONSTCOND*/0)
-
-#define PTHREAD_REG_TO_UCONTEXT(uc, reg)				\
-do {									\
-	memcpy(&(uc)->uc_mcontext.__gregs, &(reg)->r_regs,		\
-	    sizeof(__greg_t) * 32);					\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_CPU) & ~_UC_USER;       	\
-} while (/*CONSTCOND*/0)
-
-#define PTHREAD_UCONTEXT_TO_FPREG(freg, uc)       			\
-do {									\
-	memcpy((freg), &(uc)->uc_mcontext.__fpregs,			\
-	    sizeof(struct fpreg));					\
-} while (/*CONSTCOND*/0)
-
-#define PTHREAD_FPREG_TO_UCONTEXT(uc, freg)				\
-do {						       	       		\
-	memcpy(&(uc)->uc_mcontext.__fpregs, (freg),			\
-	    sizeof(struct fpreg));					\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_FPU) & ~_UC_USER;       	\
-} while (/*CONSTCOND*/0)
-
 /* Don't need additional memory barriers. */
 #define	PTHREAD__ATOMIC_IS_MEMBAR
 

Index: src/lib/libpthread/arch/i386/pthread_md.h
diff -u src/lib/libpthread/arch/i386/pthread_md.h:1.16 src/lib/libpthread/arch/i386/pthread_md.h:1.17
--- src/lib/libpthread/arch/i386/pthread_md.h:1.16	Sun Mar 29 09:30:05 2009
+++ src/lib/libpthread/arch/i386/pthread_md.h	Sat May 16 22:20:40 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: pthread_md.h,v 1.16 2009/03/29 09:30:05 ad Exp $	*/
+/*	$NetBSD: pthread_md.h,v 1.17 2009/05/16 22:20:40 ad Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2007, 2008 The NetBSD Foundation, Inc.
@@ -35,25 +35,6 @@
 #include <sys/ucontext.h>
 #include <ucontext.h>
 
-extern int (*_md_getcontext_u)(ucontext_t *);
-extern int (*_md_setcontext_u)(const ucontext_t *);
-extern int (*_md_swapcontext_u)(ucontext_t *, const ucontext_t *);
-
-#define _getcontext_u(uc) (*_md_getcontext_u)((uc))
-#define _setcontext_u(uc) (*_md_setcontext_u)((uc))
-#define _swapcontext_u(ouc, nuc) (*_md_swapcontext_u)((ouc), (nuc))
-
-int _getcontext_u_s87(ucontext_t *);
-int _setcontext_u_s87(const ucontext_t *);
-int _swapcontext_u_s87(ucontext_t *, const ucontext_t *);
-int _getcontext_u_xmm(ucontext_t *);
-int _setcontext_u_xmm(const ucontext_t *);
-int _swapcontext_u_xmm(ucontext_t *, const ucontext_t *);
-
-void pthread__i386_init(void);
-
-#define PTHREAD_MD_INIT pthread__i386_init();
-
 static inline long
 pthread__sp(void)
 {
@@ -64,7 +45,6 @@
 }
 
 #define pthread__uc_sp(ucp) ((ucp)->uc_mcontext.__gregs[_REG_UESP])
-#define pthread__uc_pc(ucp) ((ucp)->uc_mcontext.__gregs[_REG_EIP])
 
 /*
  * Set initial, sane values for registers whose values aren't just
@@ -94,86 +74,6 @@
 		    ucur.uc_mcontext.__gregs[_REG_EFL];			\
 	} while (/*CONSTCOND*/0);
 
-/*
- * Usable stack space below the ucontext_t. 
- * See comment in pthread_switch.S about STACK_SWITCH.
- */
-#define STACKSPACE	32	/* room for 8 integer values */
-
-/*
- * Conversions between struct reg and struct mcontext. Used by
- * libpthread_dbg.
- */
-
-#define PTHREAD_UCONTEXT_TO_REG(reg, uc) do {				\
-	(reg)->r_gs  = (uc)->uc_mcontext.__gregs[_REG_GS];		\
-	(reg)->r_fs  = (uc)->uc_mcontext.__gregs[_REG_FS];		\
-	(reg)->r_es  = (uc)->uc_mcontext.__gregs[_REG_ES];		\
-	(reg)->r_ds  = (uc)->uc_mcontext.__gregs[_REG_DS];		\
-	(reg)->r_edi = (uc)->uc_mcontext.__gregs[_REG_EDI];		\
-	(reg)->r_esi = (uc)->uc_mcontext.__gregs[_REG_ESI];		\
-	(reg)->r_ebp = (uc)->uc_mcontext.__gregs[_REG_EBP];		\
-	(reg)->r_ebx = (uc)->uc_mcontext.__gregs[_REG_EBX];		\
-	(reg)->r_edx = (uc)->uc_mcontext.__gregs[_REG_EDX];		\
-	(reg)->r_ecx = (uc)->uc_mcontext.__gregs[_REG_ECX];		\
-	(reg)->r_eax = (uc)->uc_mcontext.__gregs[_REG_EAX];		\
-	(reg)->r_eip = (uc)->uc_mcontext.__gregs[_REG_EIP];		\
-	(reg)->r_cs  = (uc)->uc_mcontext.__gregs[_REG_CS];		\
-	(reg)->r_eflags  = (uc)->uc_mcontext.__gregs[_REG_EFL];		\
-	(reg)->r_esp = (uc)->uc_mcontext.__gregs[_REG_UESP];		\
-	(reg)->r_ss  = (uc)->uc_mcontext.__gregs[_REG_SS];		\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_REG_TO_UCONTEXT(uc, reg) do {				\
-	(uc)->uc_mcontext.__gregs[_REG_GS]  = (reg)->r_gs;		\
-	(uc)->uc_mcontext.__gregs[_REG_FS]  = (reg)->r_fs; 		\
-	(uc)->uc_mcontext.__gregs[_REG_ES]  = (reg)->r_es; 		\
-	(uc)->uc_mcontext.__gregs[_REG_DS]  = (reg)->r_ds; 		\
-	(uc)->uc_mcontext.__gregs[_REG_EDI] = (reg)->r_edi; 		\
-	(uc)->uc_mcontext.__gregs[_REG_ESI] = (reg)->r_esi; 		\
-	(uc)->uc_mcontext.__gregs[_REG_EBP] = (reg)->r_ebp; 		\
-	(uc)->uc_mcontext.__gregs[_REG_EBX] = (reg)->r_ebx; 		\
-	(uc)->uc_mcontext.__gregs[_REG_EDX] = (reg)->r_edx; 		\
-	(uc)->uc_mcontext.__gregs[_REG_ECX] = (reg)->r_ecx; 		\
-	(uc)->uc_mcontext.__gregs[_REG_EAX] = (reg)->r_eax; 		\
-	(uc)->uc_mcontext.__gregs[_REG_EIP] = (reg)->r_eip; 		\
-	(uc)->uc_mcontext.__gregs[_REG_CS]  = (reg)->r_cs; 		\
-	(uc)->uc_mcontext.__gregs[_REG_EFL] = (reg)->r_eflags; 		\
-	(uc)->uc_mcontext.__gregs[_REG_UESP]= (reg)->r_esp;		\
-	(uc)->uc_mcontext.__gregs[_REG_SS]  = (reg)->r_ss; 		\
-	/*LINTED precision loss */					\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_CPU) & ~_UC_USER; 	\
-	} while (/*CONSTCOND*/0)
-
-
-#define PTHREAD_UCONTEXT_TO_FPREG(freg, uc)		       		\
-	(void)memcpy((freg)->__data,					\
-        (uc)->uc_mcontext.__fpregs.__fp_reg_set.__fpchip_state.__fp_state, \
-	sizeof(struct fpreg))
-
-#define PTHREAD_FPREG_TO_UCONTEXT(uc, freg) do {       	       		\
-	(void)memcpy(							\
-        (uc)->uc_mcontext.__fpregs.__fp_reg_set.__fpchip_state.__fp_state, \
-	(freg)->__data, sizeof(struct fpreg));				\
-	/*LINTED precision loss */					\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_FPU) & ~_UC_USER;	\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_UCONTEXT_XREG_FLAG	_UC_FXSAVE
-
-#define PTHREAD_UCONTEXT_TO_XREG(xreg, uc)				\
-	(void)memcpy((xreg),						\
-	(uc)->uc_mcontext.__fpregs.__fp_reg_set.__fp_xmm_state.__fp_xmm, \
-	sizeof(struct xmmregs))
-
-#define PTHREAD_XREG_TO_UCONTEXT(uc, xreg) do {				\
-	(void)memcpy(							\
-	(uc)->uc_mcontext.__fpregs.__fp_reg_set.__fp_xmm_state.__fp_xmm, \
-	(xreg),								\
-	sizeof(struct xmmregs));					\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_FXSAVE) & ~_UC_USER;	\
-	} while (/*CONSTCOND*/0)
-
 #define	pthread__smt_pause()	__asm __volatile("rep; nop" ::: "memory")
 /*	#define	PTHREAD__HAVE_THREADREG	*/
 

Index: src/lib/libpthread/arch/m68k/pthread_md.h
diff -u src/lib/libpthread/arch/m68k/pthread_md.h:1.6 src/lib/libpthread/arch/m68k/pthread_md.h:1.7
--- src/lib/libpthread/arch/m68k/pthread_md.h:1.6	Mon Apr 28 20:23:02 2008
+++ src/lib/libpthread/arch/m68k/pthread_md.h	Sat May 16 22:20:41 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: pthread_md.h,v 1.6 2008/04/28 20:23:02 martin Exp $	*/
+/*	$NetBSD: pthread_md.h,v 1.7 2009/05/16 22:20:41 ad Exp $	*/
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -29,14 +29,9 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-/*
- * Based on the i386 version.
- */
-
 #ifndef _LIB_PTHREAD_M68K_MD_H
 #define _LIB_PTHREAD_M68K_MD_H
 
-
 static inline long
 pthread__sp(void)
 {
@@ -47,50 +42,6 @@
 }
 
 #define pthread__uc_sp(ucp) ((ucp)->uc_mcontext.__gregs[_REG_A7])
-#define pthread__uc_pc(ucp) ((ucp)->uc_mcontext.__gregs[_REG_PC])
-
-/*
- * Usable stack space below the ucontext_t. 
- * See comment in pthread_switch.S about STACK_SWITCH.
- */
-#define STACKSPACE	12	/* room for 3 integer values */
-
-/*
- * Conversions between struct reg and struct mcontext. Used by
- * libpthread_dbg.
- */
-
-#define PTHREAD_UCONTEXT_TO_REG(reg, uc) do {				\
-	memcpy(&(reg)->r_regs, &(uc)->uc_mcontext.__gregs,		\
-		_REG_PC * sizeof(__greg_t));				\
-	(reg)->r_sr = (uc)->uc_mcontext.__gregs[_REG_PS];		\
-	(reg)->r_pc = (uc)->uc_mcontext.__gregs[_REG_PC];		\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_REG_TO_UCONTEXT(uc, reg) do {				\
-	memcpy(&(uc)->uc_mcontext.__gregs, &(reg)->r_regs,		\
-		_REG_PC * sizeof(__greg_t));				\
-	(uc)->uc_mcontext.__gregs[_REG_PS] = (reg)->r_sr;		\
-	(uc)->uc_mcontext.__gregs[_REG_PC] = (reg)->r_pc;		\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_CPU) & ~_UC_USER;       	\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_UCONTEXT_TO_FPREG(freg, uc) do {       			\
-	memcpy(&(freg)->r_regs, &(uc)->uc_mcontext.__fpregs.__fp_fpregs,\
-		8 * 3 * sizeof(int));					\
-	(freg)->r_fpcr = (uc)->uc_mcontext.__fpregs.__fp_pcr;		\
-	(freg)->r_fpsr = (uc)->uc_mcontext.__fpregs.__fp_psr;		\
-	(freg)->r_fpiar = (uc)->uc_mcontext.__fpregs.__fp_piaddr;      	\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_FPREG_TO_UCONTEXT(uc, freg) do {       	       		\
-	memcpy(&(uc)->uc_mcontext.__fpregs.__fp_fpregs, &(freg)->r_regs,\
-		8 * 3 * sizeof(int));					\
-	(uc)->uc_mcontext.__fpregs.__fp_pcr = (freg)->r_fpcr;		\
-	(uc)->uc_mcontext.__fpregs.__fp_psr = (freg)->r_fpsr;		\
-	(uc)->uc_mcontext.__fpregs.__fp_piaddr = (freg)->r_fpiar;      	\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_FPU) & ~_UC_USER;       	\
-	} while (/*CONSTCOND*/0)
 
 /* m68k will not go SMP */
 #define	PTHREAD__ATOMIC_IS_MEMBAR

Index: src/lib/libpthread/arch/mips/pthread_md.h
diff -u src/lib/libpthread/arch/mips/pthread_md.h:1.7 src/lib/libpthread/arch/mips/pthread_md.h:1.8
--- src/lib/libpthread/arch/mips/pthread_md.h:1.7	Mon Apr 28 20:23:02 2008
+++ src/lib/libpthread/arch/mips/pthread_md.h	Sat May 16 22:20:41 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: pthread_md.h,v 1.7 2008/04/28 20:23:02 martin Exp $	*/
+/*	$NetBSD: pthread_md.h,v 1.8 2009/05/16 22:20:41 ad Exp $	*/
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -43,64 +43,5 @@
 }
 
 #define pthread__uc_sp(ucp) ((ucp)->uc_mcontext.__gregs[_REG_SP])
-#define pthread__uc_pc(ucp) ((ucp)->uc_mcontext.__gregs[_REG_EPC])
-
-/*
- * Usable stack space below the ucontext_t.
- *    For a good time, see comments in pthread_switch.S and
- *    ../i386/pthread_switch.S about STACK_SWITCH.
- */
-#define STACKSPACE	(6*4)		/* 6 integer values */
-
-/*
- * Conversions between struct reg and struct mcontext. Used by
- * libpthread_dbg.  Note that in the "reg" structure, the indices
- * are the same as are used in the "frame" structure in the kernel.
- * These do NOT, in all cases, match the indices used in the
- * "mcontext" structure.
- */
-#include <mips/regnum.h>
-
-#define PTHREAD_UCONTEXT_TO_REG(reg, uc)				\
-do {									\
-	memcpy(&(reg)->r_regs[_R_AST], &(uc)->uc_mcontext.__gregs[_REG_AT],\
-	    sizeof(__greg_t) * 31);					\
-	(reg)->r_regs[_R_MULLO] = (uc)->uc_mcontext.__gregs[_REG_MDLO];	\
-	(reg)->r_regs[_R_MULHI] = (uc)->uc_mcontext.__gregs[_REG_MDHI];	\
-	(reg)->r_regs[_R_CAUSE] = (uc)->uc_mcontext.__gregs[_REG_CAUSE];\
-	(reg)->r_regs[_R_PC] = (uc)->uc_mcontext.__gregs[_REG_EPC];	\
-	(reg)->r_regs[_R_SR] = (uc)->uc_mcontext.__gregs[_REG_SR];	\
-} while (/*CONSTCOND*/0)
-
-#define PTHREAD_REG_TO_UCONTEXT(uc, reg)				\
-do {									\
-	memcpy(&(uc)->uc_mcontext.__gregs[_REG_AT], &(reg)->r_regs[_R_AST],\
-	    sizeof(__greg_t) * 31);					\
-	(uc)->uc_mcontext.__gregs[_REG_MDLO] = (reg)->r_regs[_R_MULLO];	\
-	(uc)->uc_mcontext.__gregs[_REG_MDHI] = (reg)->r_regs[_R_MULHI];	\
-	(uc)->uc_mcontext.__gregs[_REG_CAUSE] = (reg)->r_regs[_R_CAUSE];\
-	(uc)->uc_mcontext.__gregs[_REG_EPC] = (reg)->r_regs[_R_PC];	\
-	(uc)->uc_mcontext.__gregs[_REG_SR] = (reg)->r_regs[_R_SR];	\
-									\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_CPU) & ~_UC_USER;       	\
-} while (/*CONSTCOND*/0)
-
-#define PTHREAD_UCONTEXT_TO_FPREG(freg, uc)       			\
-do {									\
-	memcpy((freg), &(uc)->uc_mcontext.__fpregs.__fp_r.__fp_regs,	\
-	    sizeof((uc)->uc_mcontext.__fpregs.__fp_r.__fp_regs));	\
-	(freg)->r_regs[_R_FSR - _FPBASE] =				\
-	    (uc)->uc_mcontext.__fpregs.__fp_csr;			\
-} while (/*CONSTCOND*/0)
-
-#define PTHREAD_FPREG_TO_UCONTEXT(uc, freg)				\
-do {						       	       		\
-	memcpy(&(uc)->uc_mcontext.__fpregs.__fp_r.__fp_regs, (freg),	\
-	    sizeof((uc)->uc_mcontext.__fpregs.__fp_r.__fp_regs));	\
-	(uc)->uc_mcontext.__fpregs.__fp_csr =				\
-	    (freg)->r_regs[_R_FSR - _FPBASE];				\
-									\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_FPU) & ~_UC_USER;       	\
-} while (/*CONSTCOND*/0)
 
 #endif /* !_LIB_PTHREAD_MIPS_MD_H */

Index: src/lib/libpthread/arch/powerpc/pthread_md.h
diff -u src/lib/libpthread/arch/powerpc/pthread_md.h:1.5 src/lib/libpthread/arch/powerpc/pthread_md.h:1.6
--- src/lib/libpthread/arch/powerpc/pthread_md.h:1.5	Sat Dec 24 21:11:16 2005
+++ src/lib/libpthread/arch/powerpc/pthread_md.h	Sat May 16 22:20:41 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: pthread_md.h,v 1.5 2005/12/24 21:11:16 perry Exp $	*/
+/*	$NetBSD: pthread_md.h,v 1.6 2009/05/16 22:20:41 ad Exp $	*/
 
 /*
  * Copyright (c) 2001 Wasabi Systems, Inc.
@@ -49,7 +49,6 @@
 }
 
 #define pthread__uc_sp(ucp) ((ucp)->uc_mcontext.__gregs[1])
-#define pthread__uc_pc(ucp) ((ucp)->uc_mcontext.__gregs[34])
 
 /*
  * Set initial, sane values for registers whose values aren't just
@@ -59,67 +58,4 @@
 #define _INITCONTEXT_U_MD(ucp)						\
 	(ucp)->uc_mcontext.__gregs[_REG_MSR] = 0xd032;
 
-/*
- * Usable stack space below the ucontext_t.
- *    For a good time, see comments in pthread_switch.S and
- *    ../i386/pthread_switch.S about STACK_SWITCH.
- */
-#define STACKSPACE	16	/* room for 4 integer values */
-
-/*
- * Conversions between struct reg and struct mcontext. Used by
- * libpthread_dbg.
- */
-
-#define PTHREAD_UCONTEXT_TO_REG(reg, uc) do {				\
-	memcpy((reg)->fixreg, (uc)->uc_mcontext.__gregs, 32 * 4);	\
-	(reg)->cr = (uc)->uc_mcontext.__gregs[_REG_CR];			\
-	(reg)->lr = (uc)->uc_mcontext.__gregs[_REG_LR];			\
-	(reg)->pc = (uc)->uc_mcontext.__gregs[_REG_PC];			\
-	(reg)->ctr = (uc)->uc_mcontext.__gregs[_REG_CTR];		\
-	(reg)->xer = (uc)->uc_mcontext.__gregs[_REG_XER];		\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_REG_TO_UCONTEXT(uc, reg) do {				\
-	memcpy((uc)->uc_mcontext.__gregs, (reg)->fixreg, 32 * 4);	\
-	(uc)->uc_mcontext.__gregs[_REG_CR] = (reg)->cr;			\
-	(uc)->uc_mcontext.__gregs[_REG_LR] = (reg)->lr;			\
-	(uc)->uc_mcontext.__gregs[_REG_PC] = (reg)->pc;			\
-	(uc)->uc_mcontext.__gregs[_REG_CTR] = (reg)->ctr;		\
-	(uc)->uc_mcontext.__gregs[_REG_XER] = (reg)->xer;		\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_CPU) & ~_UC_USER;       	\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_UCONTEXT_TO_FPREG(freg, uc) do {	       		\
-	memcpy((freg)->fpreg, (uc)->uc_mcontext.__fpregs.__fpu_regs,	\
-		32 * 4);	       					\
-	(freg)->fpscr = (uc)->uc_mcontext.__fpregs.__fpu_fpscr;		\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_FPREG_TO_UCONTEXT(uc, freg) do {	       		\
-	memcpy((uc)->uc_mcontext.__fpregs.__fpu_regs, (freg)->fpreg,	\
-		32 * 4);						\
-	(uc)->uc_mcontext.__fpregs.__fpu_fpscr = (freg)->fpscr;		\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_FPU) & ~_UC_USER;       	\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_UCONTEXT_XREG_FLAG	_UC_POWERPC_VEC
-
-#define PTHREAD_UCONTEXT_TO_XREG(xreg, uc) do {				\
-	memcpy(((struct vreg *)(xreg))->vreg,				\
-		(uc)->uc_mcontext.__vrf.__vrs,				\
-		16 * _NVR);						\
-	((struct vreg *)(xreg))->vscr = (uc)->uc_mcontext.__vrf.__vscr;	\
-	((struct vreg *)(xreg))->vrsave = (uc)->uc_mcontext.__vrf.__vrsave; \
-	} while (/*CONSTCOND*/0)
-	
-#define PTHREAD_XREG_TO_UCONTEXT(uc, xreg) do {				\
-	memcpy((uc)->uc_mcontext.__vrf.__vrs,				\
-		((struct vreg *)(xreg))->vreg,				\
-		16 * _NVR);						\
-	(uc)->uc_mcontext.__vrf.__vscr = ((struct vreg *)(xreg))->vscr;	\
-	(uc)->uc_mcontext.__vrf.__vrsave = ((struct vreg *)(xreg))->vrsave; \
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_POWERPC_VEC) & ~_UC_USER; \
-	} while (/*CONSTCOND*/0)
-
 #endif /* _LIB_PTHREAD_POWERPC_MD_H */

Index: src/lib/libpthread/arch/powerpc64/pthread_md.h
diff -u src/lib/libpthread/arch/powerpc64/pthread_md.h:1.1 src/lib/libpthread/arch/powerpc64/pthread_md.h:1.2
--- src/lib/libpthread/arch/powerpc64/pthread_md.h:1.1	Sat Jul  8 05:09:44 2006
+++ src/lib/libpthread/arch/powerpc64/pthread_md.h	Sat May 16 22:20:41 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: pthread_md.h,v 1.1 2006/07/08 05:09:44 ross Exp $	*/
+/*	$NetBSD: pthread_md.h,v 1.2 2009/05/16 22:20:41 ad Exp $	*/
 
 /*
  * Copyright (c) 2001 Wasabi Systems, Inc.
@@ -49,7 +49,6 @@
 }
 
 #define pthread__uc_sp(ucp) ((ucp)->uc_mcontext.__gregs[1])
-#define pthread__uc_pc(ucp) ((ucp)->uc_mcontext.__gregs[34])
 
 /*
  * Set initial, sane values for registers whose values aren't just
@@ -59,67 +58,4 @@
 #define _INITCONTEXT_U_MD(ucp)						\
 	(ucp)->uc_mcontext.__gregs[_REG_MSR] = 0xd032;
 
-/*
- * Usable stack space below the ucontext_t.
- *    For a good time, see comments in pthread_switch.S and
- *    ../i386/pthread_switch.S about STACK_SWITCH.
- */
-#define STACKSPACE	16	/* room for 4 integer values */
-
-/*
- * Conversions between struct reg and struct mcontext. Used by
- * libpthread_dbg.
- */
-
-#define PTHREAD_UCONTEXT_TO_REG(reg, uc) do {				\
-	memcpy((reg)->fixreg, (uc)->uc_mcontext.__gregs, 32 * 4);	\
-	(reg)->cr = (uc)->uc_mcontext.__gregs[_REG_CR];			\
-	(reg)->lr = (uc)->uc_mcontext.__gregs[_REG_LR];			\
-	(reg)->pc = (uc)->uc_mcontext.__gregs[_REG_PC];			\
-	(reg)->ctr = (uc)->uc_mcontext.__gregs[_REG_CTR];		\
-	(reg)->xer = (uc)->uc_mcontext.__gregs[_REG_XER];		\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_REG_TO_UCONTEXT(uc, reg) do {				\
-	memcpy((uc)->uc_mcontext.__gregs, (reg)->fixreg, 32 * 4);	\
-	(uc)->uc_mcontext.__gregs[_REG_CR] = (reg)->cr;			\
-	(uc)->uc_mcontext.__gregs[_REG_LR] = (reg)->lr;			\
-	(uc)->uc_mcontext.__gregs[_REG_PC] = (reg)->pc;			\
-	(uc)->uc_mcontext.__gregs[_REG_CTR] = (reg)->ctr;		\
-	(uc)->uc_mcontext.__gregs[_REG_XER] = (reg)->xer;		\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_CPU) & ~_UC_USER;       	\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_UCONTEXT_TO_FPREG(freg, uc) do {	       		\
-	memcpy((freg)->fpreg, (uc)->uc_mcontext.__fpregs.__fpu_regs,	\
-		32 * 4);	       					\
-	(freg)->fpscr = (uc)->uc_mcontext.__fpregs.__fpu_fpscr;		\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_FPREG_TO_UCONTEXT(uc, freg) do {	       		\
-	memcpy((uc)->uc_mcontext.__fpregs.__fpu_regs, (freg)->fpreg,	\
-		32 * 4);						\
-	(uc)->uc_mcontext.__fpregs.__fpu_fpscr = (freg)->fpscr;		\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_FPU) & ~_UC_USER;       	\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_UCONTEXT_XREG_FLAG	_UC_POWERPC_VEC
-
-#define PTHREAD_UCONTEXT_TO_XREG(xreg, uc) do {				\
-	memcpy(((struct vreg *)(xreg))->vreg,				\
-		(uc)->uc_mcontext.__vrf.__vrs,				\
-		16 * _NVR);						\
-	((struct vreg *)(xreg))->vscr = (uc)->uc_mcontext.__vrf.__vscr;	\
-	((struct vreg *)(xreg))->vrsave = (uc)->uc_mcontext.__vrf.__vrsave; \
-	} while (/*CONSTCOND*/0)
-	
-#define PTHREAD_XREG_TO_UCONTEXT(uc, xreg) do {				\
-	memcpy((uc)->uc_mcontext.__vrf.__vrs,				\
-		((struct vreg *)(xreg))->vreg,				\
-		16 * _NVR);						\
-	(uc)->uc_mcontext.__vrf.__vscr = ((struct vreg *)(xreg))->vscr;	\
-	(uc)->uc_mcontext.__vrf.__vrsave = ((struct vreg *)(xreg))->vrsave; \
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_POWERPC_VEC) & ~_UC_USER; \
-	} while (/*CONSTCOND*/0)
-
 #endif /* _LIB_PTHREAD_POWERPC_MD_H */

Index: src/lib/libpthread/arch/sh3/pthread_md.h
diff -u src/lib/libpthread/arch/sh3/pthread_md.h:1.6 src/lib/libpthread/arch/sh3/pthread_md.h:1.7
--- src/lib/libpthread/arch/sh3/pthread_md.h:1.6	Mon Oct 27 00:52:07 2008
+++ src/lib/libpthread/arch/sh3/pthread_md.h	Sat May 16 22:20:41 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: pthread_md.h,v 1.6 2008/10/27 00:52:07 uwe Exp $ */
+/*	$NetBSD: pthread_md.h,v 1.7 2009/05/16 22:20:41 ad Exp $ */
 
 /*
  * Copyright 2003 Wasabi Systems, Inc.
@@ -48,7 +48,6 @@
 }
 
 #define pthread__uc_sp(ucp) ((ucp)->uc_mcontext.__gregs[_REG_R15])
-#define pthread__uc_pc(ucp) ((ucp)->uc_mcontext.__gregs[_REG_PC])
 
 /*
  * Set initial, sane values for registers whose values aren't just
@@ -57,83 +56,6 @@
 #define _INITCONTEXT_U_MD(ucp)						\
 	(ucp)->uc_mcontext.__gregs[_REG_SR] = 0;
 
-/*
- * SH3 requires no extra stack space
- */
-#define STACKSPACE	0
-
-
-/*
- * Conversions between struct reg and struct mcontext. Used by
- * libpthread_dbg.
- */
-
-#define PTHREAD_UCONTEXT_TO_REG(reg, uc) do {				\
-	(reg)->r_spc = (uc)->uc_mcontext.__gregs[_REG_PC];		\
-	(reg)->r_ssr = (uc)->uc_mcontext.__gregs[_REG_SR];		\
-	(reg)->r_pr = (uc)->uc_mcontext.__gregs[_REG_PR];		\
-	(reg)->r_mach = (uc)->uc_mcontext.__gregs[_REG_MACH];		\
-	(reg)->r_macl = (uc)->uc_mcontext.__gregs[_REG_MACL];		\
-	(reg)->r_r15 = (uc)->uc_mcontext.__gregs[_REG_R15];		\
-	(reg)->r_r14 = (uc)->uc_mcontext.__gregs[_REG_R14];		\
-	(reg)->r_r13 = (uc)->uc_mcontext.__gregs[_REG_R13];		\
-	(reg)->r_r12 = (uc)->uc_mcontext.__gregs[_REG_R12];		\
-	(reg)->r_r11 = (uc)->uc_mcontext.__gregs[_REG_R11];		\
-	(reg)->r_r10 = (uc)->uc_mcontext.__gregs[_REG_R10];		\
-	(reg)->r_r9 = (uc)->uc_mcontext.__gregs[_REG_R9];		\
-	(reg)->r_r8 = (uc)->uc_mcontext.__gregs[_REG_R8];		\
-	(reg)->r_r7 = (uc)->uc_mcontext.__gregs[_REG_R7];		\
-	(reg)->r_r6 = (uc)->uc_mcontext.__gregs[_REG_R6];		\
-	(reg)->r_r5 = (uc)->uc_mcontext.__gregs[_REG_R5];		\
-	(reg)->r_r4 = (uc)->uc_mcontext.__gregs[_REG_R4];		\
-	(reg)->r_r3 = (uc)->uc_mcontext.__gregs[_REG_R3];		\
-	(reg)->r_r2 = (uc)->uc_mcontext.__gregs[_REG_R2];		\
-	(reg)->r_r1 = (uc)->uc_mcontext.__gregs[_REG_R1];		\
-	(reg)->r_r0 = (uc)->uc_mcontext.__gregs[_REG_R0];		\
-	(reg)->r_gbr = (uc)->uc_mcontext.__gregs[_REG_GBR];		\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_REG_TO_UCONTEXT(uc, reg) do {				\
-	(uc)->uc_mcontext.__gregs[_REG_GBR] = (reg)->r_gbr;		\
-	(uc)->uc_mcontext.__gregs[_REG_PC] = (reg)->r_spc;		\
-	(uc)->uc_mcontext.__gregs[_REG_SR] = (reg)->r_ssr;		\
-	(uc)->uc_mcontext.__gregs[_REG_PR] = (reg)->r_pr; 		\
-	(uc)->uc_mcontext.__gregs[_REG_MACH] = (reg)->r_mach;		\
-	(uc)->uc_mcontext.__gregs[_REG_MACL] = (reg)->r_macl;		\
-	(uc)->uc_mcontext.__gregs[_REG_R15] = (reg)->r_r15;		\
-	(uc)->uc_mcontext.__gregs[_REG_R14] = (reg)->r_r14;		\
-	(uc)->uc_mcontext.__gregs[_REG_R13] = (reg)->r_r13;		\
-	(uc)->uc_mcontext.__gregs[_REG_R12] = (reg)->r_r12;		\
-	(uc)->uc_mcontext.__gregs[_REG_R11] = (reg)->r_r11;		\
-	(uc)->uc_mcontext.__gregs[_REG_R10] = (reg)->r_r10;		\
-	(uc)->uc_mcontext.__gregs[_REG_R9] = (reg)->r_r9;		\
-	(uc)->uc_mcontext.__gregs[_REG_R8] = (reg)->r_r8;		\
-	(uc)->uc_mcontext.__gregs[_REG_R7] = (reg)->r_r7;		\
-	(uc)->uc_mcontext.__gregs[_REG_R6] = (reg)->r_r6;		\
-	(uc)->uc_mcontext.__gregs[_REG_R5] = (reg)->r_r5;		\
-	(uc)->uc_mcontext.__gregs[_REG_R4] = (reg)->r_r4;		\
-	(uc)->uc_mcontext.__gregs[_REG_R3] = (reg)->r_r3;		\
-	(uc)->uc_mcontext.__gregs[_REG_R2] = (reg)->r_r2;		\
-	(uc)->uc_mcontext.__gregs[_REG_R1] = (reg)->r_r1;		\
-	(uc)->uc_mcontext.__gregs[_REG_R0] = (reg)->r_r0;		\
-									\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_CPU) & ~_UC_USER;	\
-	} while (/*CONSTCOND*/0)
-
-#if 0 /* no struct fpreg!!! */
-#define PTHREAD_UCONTEXT_TO_FPREG(freg, uc)       			\
-	memcpy((freg), &(uc)->uc_mcontext.__fpregs, sizeof(*(freg)));
-
-#define PTHREAD_FPREG_TO_UCONTEXT(uc, freg) do {       	       		\
-	memcpy(&(uc)->uc_mcontext.__fpregs, (freg), sizeof(*(freg)));	\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_FPU) & ~_UC_USER;       	\
-	} while (/*CONSTCOND*/0)
-
-#else  /* stubs */
-#define PTHREAD_UCONTEXT_TO_FPREG(freg, uc)
-#define PTHREAD_FPREG_TO_UCONTEXT(uc, freg)
-#endif
-
 /* sh3 will not go SMP */
 #define	PTHREAD__ATOMIC_IS_MEMBAR
 

Index: src/lib/libpthread/arch/sparc/pthread_md.h
diff -u src/lib/libpthread/arch/sparc/pthread_md.h:1.6 src/lib/libpthread/arch/sparc/pthread_md.h:1.7
--- src/lib/libpthread/arch/sparc/pthread_md.h:1.6	Mon Apr 28 20:23:02 2008
+++ src/lib/libpthread/arch/sparc/pthread_md.h	Sat May 16 22:20:41 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: pthread_md.h,v 1.6 2008/04/28 20:23:02 martin Exp $	*/
+/*	$NetBSD: pthread_md.h,v 1.7 2009/05/16 22:20:41 ad Exp $	*/
 
 /*-
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -43,47 +43,6 @@
 }
 
 #define pthread__uc_sp(ucp) ((ucp)->uc_mcontext.__gregs[_REG_O6])
-#define pthread__uc_pc(ucp) ((ucp)->uc_mcontext.__gregs[_REG_PC])
-
-#define STACKSPACE 96	/* min stack frame XXX */
-
-/*
- * Conversions between struct reg and struct mcontext. Used by
- * libpthread_dbg.
- * XXX macros
- */
-
-#define PTHREAD_UCONTEXT_TO_REG(reg, uc) do {				\
-	memcpy((reg), &(uc)->uc_mcontext.__gregs, 			\
-	    (_REG_Y+1)*sizeof(__greg_t));				\
-	(reg)->r_global[0] = 0;						\
-	memcpy(&(reg)->r_global[1], &(uc)->uc_mcontext.__gregs[_REG_G1],\
-	     (_REG_O7-_REG_G1+1)*sizeof(__greg_t));			\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_REG_TO_UCONTEXT(uc, reg) do {				\
-	memcpy(&(uc)->uc_mcontext.__gregs, (reg), 			\
-	    (_REG_Y+1)*sizeof(__greg_t)); 				\
-	(uc)->uc_mcontext.__gregs[_REG_Y] = (reg)->r_y;			\
-	memcpy(&(uc)->uc_mcontext.__gregs[_REG_G1], &(reg)->r_global[1],\
-	    (_REG_O7-_REG_G1+1)*sizeof(__greg_t));			\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_CPU) & ~_UC_USER;       	\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_UCONTEXT_TO_FPREG(freg, uc) do {			\
-	memcpy((freg)->fr_regs,						\
-	    &(uc)->uc_mcontext.__fpregs.__fpu_fr.__fpu_regs,		\
-	    32*sizeof(u_int));						\
-	(freg)->fr_fsr = (uc)->uc_mcontext.__fpregs.__fpu_fsr;		\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_FPREG_TO_UCONTEXT(uc, freg) do {       	       		\
-	memcpy(&(uc)->uc_mcontext.__fpregs.__fpu_fr.__fpu_regs,		\
-	    (freg)->fr_regs,						\
-	    32*sizeof(u_int));						\
-	(uc)->uc_mcontext.__fpregs.__fpu_fsr = (freg)->fr_fsr;		\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_FPU) & ~_UC_USER;       	\
-	} while (/*CONSTCOND*/0)
 
 /* Don't need additional memory barriers. */
 #define	PTHREAD__ATOMIC_IS_MEMBAR

Index: src/lib/libpthread/arch/sparc64/pthread_md.h
diff -u src/lib/libpthread/arch/sparc64/pthread_md.h:1.5 src/lib/libpthread/arch/sparc64/pthread_md.h:1.6
--- src/lib/libpthread/arch/sparc64/pthread_md.h:1.5	Mon Apr 28 20:23:02 2008
+++ src/lib/libpthread/arch/sparc64/pthread_md.h	Sat May 16 22:20:41 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: pthread_md.h,v 1.5 2008/04/28 20:23:02 martin Exp $	*/
+/*	$NetBSD: pthread_md.h,v 1.6 2009/05/16 22:20:41 ad Exp $	*/
 
 /*-
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -43,51 +43,5 @@
 }
 
 #define pthread__uc_sp(ucp) ((ucp)->uc_mcontext.__gregs[_REG_O6])
-#define pthread__uc_pc(ucp) ((ucp)->uc_mcontext.__gregs[_REG_PC])
-
-#define STACKSPACE 176	/* min stack frame XXX */
-
-/*
- * Conversions between struct reg and struct mcontext. Used by
- * libpthread_dbg.
- * XXX macros
- */
-
-#define PTHREAD_UCONTEXT_TO_REG(reg, uc) do {				\
-	memcpy(&(reg)->r_tstate, &(uc)->uc_mcontext.__gregs, 		\
-	    _REG_Y * sizeof(__greg_t));					\
-	(reg)->r_y = (uc)->uc_mcontext.__gregs[_REG_Y];			\
-	memcpy(&(reg)->r_global[1], &(uc)->uc_mcontext.__gregs[_REG_G1],\
-	    (_REG_O7 - _REG_G1 + 1) * sizeof(__greg_t));		\
-	(reg)->r_global[0] = 0; 					\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_REG_TO_UCONTEXT(uc, reg) do {				\
-	memcpy(&(uc)->uc_mcontext.__gregs, &(reg)->r_tstate,		\
-	    _REG_Y * sizeof(__greg_t));					\
-	(uc)->uc_mcontext.__gregs[_REG_Y] = (reg)->r_y;			\
-	memcpy(&(uc)->uc_mcontext.__gregs[_REG_G1], &(reg)->r_global[1],\
-	    (_REG_O7 - _REG_G1 + 1) * sizeof(__greg_t));		\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_CPU) & ~_UC_USER;       	\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_UCONTEXT_TO_FPREG(freg, uc) do {			\
-	memcpy((freg)->fr_regs,						\
-	    &(uc)->uc_mcontext.__fpregs.__fpu_fr.__fpu_dregs,		\
-	    32*sizeof(double));						\
-	(freg)->fr_fsr = (uc)->uc_mcontext.__fpregs.__fpu_fsr;		\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_FPREG_TO_UCONTEXT(uc, freg) do {       	       		\
-	memcpy(&(uc)->uc_mcontext.__fpregs.__fpu_fr.__fpu_dregs,	\
-	    (freg)->fr_regs,						\
-	    32*sizeof(double));						\
-	(uc)->uc_mcontext.__fpregs.__fpu_fsr = (freg)->fr_fsr;		\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_FPU) & ~_UC_USER;       	\
-	} while (/*CONSTCOND*/0)
-
-#ifdef __PTHREAD_SIGNAL_PRIVATE
-#include <machine/psl.h>
-#endif
 
 #endif /* _LIB_PTHREAD_SPARC64_MD_H */

Index: src/lib/libpthread/arch/vax/pthread_md.h
diff -u src/lib/libpthread/arch/vax/pthread_md.h:1.6 src/lib/libpthread/arch/vax/pthread_md.h:1.7
--- src/lib/libpthread/arch/vax/pthread_md.h:1.6	Mon Apr 28 20:23:02 2008
+++ src/lib/libpthread/arch/vax/pthread_md.h	Sat May 16 22:20:42 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: pthread_md.h,v 1.6 2008/04/28 20:23:02 martin Exp $	*/
+/*	$NetBSD: pthread_md.h,v 1.7 2009/05/16 22:20:42 ad Exp $	*/
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -43,7 +43,6 @@
 }
 
 #define pthread__uc_sp(ucp) ((ucp)->uc_mcontext.__gregs[_REG_SP])
-#define pthread__uc_pc(ucp) ((ucp)->uc_mcontext.__gregs[_REG_PC])
 
 /*
  * Set initial, sane values for registers whose values aren't just
@@ -53,31 +52,6 @@
 #define _INITCONTEXT_U_MD(ucp)						\
 	(ucp)->uc_mcontext.__gregs[_REG_PSL] = 0x03c00000;
 
-#define	STACKSPACE	0
-/*
- * Conversions between struct reg and struct mcontext. Used by
- * libpthread_dbg.
- */
-
-#define PTHREAD_UCONTEXT_TO_REG(reg, uc) do {				\
-	memcpy((reg), &(uc)->uc_mcontext.__gregs, 17 * sizeof(__greg_t)); \
-	(reg)->fp = (uc)->uc_mcontext.__gregs[_REG_FP];			\
-	(reg)->sp = (uc)->uc_mcontext.__gregs[_REG_SP];			\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_REG_TO_UCONTEXT(uc, reg) do {				\
-	memcpy(&(uc)->uc_mcontext.__gregs, (reg), 17 * sizeof(__greg_t)); \
-	(uc)->uc_mcontext.__gregs[_REG_FP] = (reg)->fp;			\
-	(uc)->uc_mcontext.__gregs[_REG_SP] = (reg)->sp;			\
-	(uc)->uc_flags = ((uc)->uc_flags | _UC_CPU) & ~_UC_USER;       	\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_UCONTEXT_TO_FPREG(reg, uc) do {				\
-	} while (/*CONSTCOND*/0)
-
-#define PTHREAD_FPREG_TO_UCONTEXT(uc, reg) do {				\
-	} while (/*CONSTCOND*/0)
-
 /* Don't need additional memory barriers. */
 #define	PTHREAD__ATOMIC_IS_MEMBAR
 

Added files:

Index: src/lib/libpthread/arch/hppa/pthread_md.S
diff -u /dev/null src/lib/libpthread/arch/hppa/pthread_md.S:1.1
--- /dev/null	Sat May 16 22:20:42 2009
+++ src/lib/libpthread/arch/hppa/pthread_md.S	Sat May 16 22:20:40 2009
@@ -0,0 +1,67 @@
+/*	$NetBSD: pthread_md.S,v 1.1 2009/05/16 22:20:40 ad Exp $	*/
+
+/*
+ * Copyright (c) 2001 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Wayne Knowles
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <machine/asm.h>
+
+LEAF_ENTRY(pthread__ras_simple_lock_init)
+	ldi	1,%ret0			/* 1 == unlocked */
+	stw	%ret0,0(%arg0)
+	stw	%ret0,4(%arg0)
+	stw	%ret0,8(%arg0)
+	stw	%ret0,12(%arg0)
+	bv,n	%r0(%rp)
+EXIT(pthread__ras_simple_lock_init)
+
+	.global pthread__lock_ras_start
+	.global pthread__lock_ras_end
+
+LEAF_ENTRY(pthread__ras_simple_lock_try)
+	ldo	15(%arg0),%arg0
+	depi	0,31,4,%arg0
+
+pthread__lock_ras_start:
+	ldw	0(%arg0),%ret0
+	stw	%r0,0(%arg0)		/* 0 == locked */
+pthread__lock_ras_end:
+
+	comiclr,= 0,%ret0,%ret0		/* if locked return 0 */
+	ldi	1,%ret0			/* else return 1 */
+	bv,n	%r0(%rp)
+EXIT(pthread__ras_simple_lock_try)
+
+
+LEAF_ENTRY(pthread__ras_simple_unlock)
+	ldo	15(%arg0),%arg0
+	depi	0,31,4,%arg0
+	ldi	1,%ret0			/* 1 == unlocked */
+	bv	%r0(%rp)
+	stw	%ret0,0(%arg0)
+EXIT(pthread__ras_simple_unlock)

Reply via email to