summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorDale Rahn <drahn@cvs.openbsd.org>2001-01-24 21:29:13 +0000
committerDale Rahn <drahn@cvs.openbsd.org>2001-01-24 21:29:13 +0000
commit5e65302788d68a74e5486f194914f5627eed834e (patch)
tree55512a4476f56c7ac5783e3c14730b67e07a6e4d /sys
parent77d98c6cfe41938f7a46123b03d7f22f3383e62f (diff)
Optimization base on looking at generated asm code.
also change type of a variable from (void) * to (char *) since it is incremented as if a (char *).
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/powerpc/include/cpu.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/arch/powerpc/include/cpu.h b/sys/arch/powerpc/include/cpu.h
index 7a4c581a067..b854c1732ce 100644
--- a/sys/arch/powerpc/include/cpu.h
+++ b/sys/arch/powerpc/include/cpu.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: cpu.h,v 1.4 2001/01/15 19:50:39 deraadt Exp $ */
+/* $OpenBSD: cpu.h,v 1.5 2001/01/24 21:29:12 drahn Exp $ */
/* $NetBSD: cpu.h,v 1.1 1996/09/30 16:34:21 ws Exp $ */
/*
@@ -64,17 +64,19 @@ syncicache(from, len)
int len;
{
int l = len;
- void *p = from;
+ char *p = from;
do {
__asm__ __volatile__ ("dcbst 0,%0" :: "r"(p));
p += CACHELINESIZE;
} while ((l -= CACHELINESIZE) > 0);
__asm__ __volatile__ ("sync");
+ p = from;
+ l = len;
do {
- __asm__ __volatile__ ("icbi 0,%0" :: "r"(from));
- from += CACHELINESIZE;
- } while ((len -= CACHELINESIZE) > 0);
+ __asm__ __volatile__ ("icbi 0,%0" :: "r"(p));
+ p += CACHELINESIZE;
+ } while ((l -= CACHELINESIZE) > 0);
__asm__ __volatile__ ("isync");
}