Module Name: src Committed By: snj Date: Tue Jun 9 17:54:06 UTC 2009
Modified Files: src/sys/arch/powerpc/powerpc [netbsd-5-0]: locore_subr.S vm_machdep.c Log Message: Pull up following revision(s) (requested by martin in ticket #801): sys/arch/powerpc/powerpc/locore_subr.S: revision 1.38 sys/arch/powerpc/powerpc/vm_machdep.c: revision 1.77 Do not use the same trampoline for cpu_setfunc and cpu_lwp_fork, the latter does a lot more work. To generate a diff of this commit: cvs rdiff -u -r1.37 -r1.37.20.1 src/sys/arch/powerpc/powerpc/locore_subr.S cvs rdiff -u -r1.74 -r1.74.6.1 src/sys/arch/powerpc/powerpc/vm_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/powerpc/powerpc/locore_subr.S diff -u src/sys/arch/powerpc/powerpc/locore_subr.S:1.37 src/sys/arch/powerpc/powerpc/locore_subr.S:1.37.20.1 --- src/sys/arch/powerpc/powerpc/locore_subr.S:1.37 Thu Apr 10 23:29:01 2008 +++ src/sys/arch/powerpc/powerpc/locore_subr.S Tue Jun 9 17:54:06 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: locore_subr.S,v 1.37 2008/04/10 23:29:01 matt Exp $ */ +/* $NetBSD: locore_subr.S,v 1.37.20.1 2009/06/09 17:54:06 snj Exp $ */ /* * Copyright (c) 2001 Wasabi Systems, Inc. @@ -288,6 +288,9 @@ */ bl _C_LABEL(lwp_startup) + .globl _C_LABEL(setfunc_trampoline) +_C_LABEL(setfunc_trampoline): + mtlr %r31 mr %r3,%r30 blrl /* jump indirect to r31 */ Index: src/sys/arch/powerpc/powerpc/vm_machdep.c diff -u src/sys/arch/powerpc/powerpc/vm_machdep.c:1.74 src/sys/arch/powerpc/powerpc/vm_machdep.c:1.74.6.1 --- src/sys/arch/powerpc/powerpc/vm_machdep.c:1.74 Sat Oct 25 09:10:07 2008 +++ src/sys/arch/powerpc/powerpc/vm_machdep.c Tue Jun 9 17:54:06 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: vm_machdep.c,v 1.74 2008/10/25 09:10:07 mrg Exp $ */ +/* $NetBSD: vm_machdep.c,v 1.74.6.1 2009/06/09 17:54:06 snj Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.74 2008/10/25 09:10:07 mrg Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.74.6.1 2009/06/09 17:54:06 snj Exp $"); #include "opt_altivec.h" #include "opt_multiprocessor.h" @@ -351,7 +351,7 @@ void cpu_setfunc(struct lwp *l, void (*func)(void *), void *arg) { - extern void fork_trampoline(void); + extern void setfunc_trampoline(void); struct pcb *pcb = &l->l_addr->u_pcb; struct trapframe *tf; struct callframe *cf; @@ -359,7 +359,7 @@ tf = trapframe(l); cf = (struct callframe *) ((uintptr_t)tf & ~(CALLFRAMELEN-1)); - cf->lr = (register_t)cpu_lwp_bootstrap; + cf->lr = (register_t)setfunc_trampoline; cf--; cf->sp = (register_t) (cf+1); cf->r31 = (register_t) func;