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)