Module Name: src Committed By: rin Date: Wed Oct 5 02:56:14 UTC 2022
Modified Files: src/sys/arch/powerpc/ibm4xx: copyinstr.c copyoutstr.c Log Message: copy{in,out}str: As a tiny optimization, drop redundant mtpid. No regression for ATF on 405. 403 seems to work fine. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/sys/arch/powerpc/ibm4xx/copyinstr.c \ src/sys/arch/powerpc/ibm4xx/copyoutstr.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/ibm4xx/copyinstr.c diff -u src/sys/arch/powerpc/ibm4xx/copyinstr.c:1.22 src/sys/arch/powerpc/ibm4xx/copyinstr.c:1.23 --- src/sys/arch/powerpc/ibm4xx/copyinstr.c:1.22 Tue Oct 4 14:08:30 2022 +++ src/sys/arch/powerpc/ibm4xx/copyinstr.c Wed Oct 5 02:56:14 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: copyinstr.c,v 1.22 2022/10/04 14:08:30 rin Exp $ */ +/* $NetBSD: copyinstr.c,v 1.23 2022/10/05 02:56:14 rin Exp $ */ /* * Copyright 2001 Wasabi Systems, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: copyinstr.c,v 1.22 2022/10/04 14:08:30 rin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: copyinstr.c,v 1.23 2022/10/05 02:56:14 rin Exp $"); #include <sys/param.h> #include <uvm/uvm_extern.h> @@ -94,8 +94,7 @@ copyinstr(const void *uaddr, void *kaddr "sync;" "bdnzf eq,1b;" /* while(ctr-- && !zero) */ - MTPID(%[pid]) /* Restore PID, MSR */ - "mtmsr %[msr];" + "mtmsr %[msr];" /* Restore MSR */ "isync;" "mfctr %[resid];" /* Restore resid */ Index: src/sys/arch/powerpc/ibm4xx/copyoutstr.c diff -u src/sys/arch/powerpc/ibm4xx/copyoutstr.c:1.22 src/sys/arch/powerpc/ibm4xx/copyoutstr.c:1.23 --- src/sys/arch/powerpc/ibm4xx/copyoutstr.c:1.22 Tue Oct 4 14:08:30 2022 +++ src/sys/arch/powerpc/ibm4xx/copyoutstr.c Wed Oct 5 02:56:14 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: copyoutstr.c,v 1.22 2022/10/04 14:08:30 rin Exp $ */ +/* $NetBSD: copyoutstr.c,v 1.23 2022/10/05 02:56:14 rin Exp $ */ /* * Copyright 2001 Wasabi Systems, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: copyoutstr.c,v 1.22 2022/10/04 14:08:30 rin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: copyoutstr.c,v 1.23 2022/10/05 02:56:14 rin Exp $"); #include <sys/param.h> #include <uvm/uvm_extern.h> @@ -80,9 +80,7 @@ copyoutstr(const void *kaddr, void *uadd "isync;" MFPID(%[pid]) /* Save old PID */ - "1:" MTPID(%[pid]) - "isync;" - "lbz %[tmp],0(%[kaddr]);" /* Load kernel byte */ + "1:" "lbz %[tmp],0(%[kaddr]);" /* Load kernel byte */ "addi %[kaddr],%[kaddr],1;" "sync;" @@ -92,10 +90,12 @@ copyoutstr(const void *kaddr, void *uadd "addi %[uaddr],%[uaddr],1;" "or. %[tmp],%[tmp],%[tmp];" "sync;" + + MTPID(%[pid]) + "isync;" "bdnzf eq,1b;" /* while(ctr-- && !zero) */ - MTPID(%[pid]) /* Restore PID, MSR */ - "mtmsr %[msr];" + "mtmsr %[msr];" /* Restore MSR */ "isync;" "mfctr %[resid];" /* Restore resid */