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 */