Module Name:    src
Committed By:   matt
Date:           Fri Aug  7 23:23:58 UTC 2009

Modified Files:
        src/sys/arch/mips/mips: cache_ls2.c

Log Message:
Clean up a bit.  No reason to use 4way on icache ops (it clears all ways).


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/mips/mips/cache_ls2.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/mips/mips/cache_ls2.c
diff -u src/sys/arch/mips/mips/cache_ls2.c:1.1 src/sys/arch/mips/mips/cache_ls2.c:1.2
--- src/sys/arch/mips/mips/cache_ls2.c:1.1	Fri Aug  7 18:39:10 2009
+++ src/sys/arch/mips/mips/cache_ls2.c	Fri Aug  7 23:23:58 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: cache_ls2.c,v 1.1 2009/08/07 18:39:10 matt Exp $	*/
+/*	$NetBSD: cache_ls2.c,v 1.2 2009/08/07 23:23:58 matt Exp $	*/
 
 /*-
  * Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cache_ls2.c,v 1.1 2009/08/07 18:39:10 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cache_ls2.c,v 1.2 2009/08/07 23:23:58 matt Exp $");
 
 #include <sys/param.h>
 
@@ -59,24 +59,19 @@
 
 	va = trunc_line(va);
 
-	if (va + mips_picache_way_size <= eva) {
+	if (va + mips_picache_size <= eva) {
 		ls2_icache_sync_all();
 		return;
 	}
-#if 0
-	mips_dcache_wb_range(va, (eva - va));
-#endif
-
-	while (va + 8 * 32 <= eva) {
-		cache_op_ls2_8line_4way(va, CACHEOP_LS2_D_HIT_WB_INV);
-		cache_op_ls2_8line_4way(va, CACHEOP_LS2_I_INDEX_INV);
-		va += 8 * 32;
+
+	for (; va + 8 * 32 <= eva; va += 8 * 32) {
+		cache_op_ls2_8line(va, CACHEOP_LS2_D_HIT_WB_INV);
+		cache_op_ls2_8line(va, CACHEOP_LS2_I_INDEX_INV);
 	}
 
-	while (va < eva) {
-		cache_op_ls2_line_4way(va, CACHEOP_LS2_D_HIT_WB_INV);
-		cache_op_ls2_line_4way(va, CACHEOP_LS2_I_INDEX_INV);
-		va += 32;
+	for (; va < eva; va += 32) {
+		cache_op_ls2_line(va, CACHEOP_LS2_D_HIT_WB_INV);
+		cache_op_ls2_line(va, CACHEOP_LS2_I_INDEX_INV);
 	}
 
 	__asm volatile("sync");
@@ -103,22 +98,17 @@
 		eva = mips_picache_way_size;
 	}
 
-#if 0
-	mips_dcache_wbinv_range_index(va, (eva - va));
-	__asm volatile("sync");
-#endif
-
-	while (va + 8 * 32 <= eva) {
+	for (; va + 8 * 32 <= eva; va += 8 * 32) {
 		cache_op_ls2_8line_4way(va, CACHEOP_LS2_D_INDEX_WB_INV);
-		cache_op_ls2_8line_4way(va, CACHEOP_LS2_I_INDEX_INV);
-		va += 8 * 32;
+		cache_op_ls2_8line(va, CACHEOP_LS2_I_INDEX_INV);
 	}
 
-	while (va < eva) {
+	for (; va < eva; va += 32) {
 		cache_op_ls2_line_4way(va, CACHEOP_LS2_D_INDEX_WB_INV);
-		cache_op_ls2_line_4way(va, CACHEOP_LS2_I_INDEX_INV);
-		va += 32;
+		cache_op_ls2_line(va, CACHEOP_LS2_I_INDEX_INV);
 	}
+
+	__asm volatile("sync");
 }
 
 void
@@ -134,15 +124,15 @@
 
 	va = trunc_line(va);
 
-	while (va + 8 * 32 <= eva) {
+	for (; va + 8 * 32 <= eva; va += 8 * 32) {
 		cache_op_ls2_8line(va, CACHEOP_LS2_D_HIT_INV);
-		va += 8 * 32;
 	}
 
-	while (va < eva) {
+	for (; va < eva; va += 32) {
 		cache_op_ls2_line(va, CACHEOP_LS2_D_HIT_INV);
-		va += 32;
 	}
+
+	__asm volatile("sync");
 }
 
 void
@@ -152,15 +142,15 @@
 
 	va = trunc_line(va);
 
-	while (va + 8 * 32 <= eva) {
+	for (; va + 8 * 32 <= eva; va += 8 * 32) {
 		cache_op_ls2_8line(va, CACHEOP_LS2_D_HIT_WB_INV);
-		va += 8 * 32;
 	}
 
-	while (va < eva) {
+	for (; va < eva; va += 32) {
 		cache_op_ls2_line(va, CACHEOP_LS2_D_HIT_WB_INV);
-		va += 32;
 	}
+
+	__asm volatile("sync");
 }
 
 void
@@ -193,15 +183,15 @@
 		eva = mips_pdcache_way_size;
 	}
 
-	while (va + 8 * 32 <= eva) {
+	for (; va + 8 * 32 <= eva; va += 8 * 32) {
 		cache_op_ls2_8line_4way(va, CACHEOP_LS2_D_INDEX_WB_INV);
-		va += 8 * 32;
 	}
 
-	while (va < eva) {
+	for (; va < eva; va += 32) {
 		cache_op_ls2_line_4way(va, CACHEOP_LS2_D_INDEX_WB_INV);
-		va += 32;
 	}
+
+	__asm volatile("sync");
 }
 
 void
@@ -226,15 +216,15 @@
 
 	va = trunc_line(va);
 
-	while (va + 8 * 32 <= eva) {
+	for (; va + 8 * 32 <= eva; va += 8 * 32) {
 		cache_op_ls2_8line(va, CACHEOP_LS2_S_HIT_INV);
-		va += 8 * 32;
 	}
 
-	while (va < eva) {
+	for (; va < eva; va += 32) {
 		cache_op_ls2_line(va, CACHEOP_LS2_S_HIT_INV);
-		va += 32;
 	}
+
+	__asm volatile("sync");
 }
 
 void
@@ -244,15 +234,15 @@
 
 	va = trunc_line(va);
 
-	while (va + 8 * 32 <= eva) {
+	for (; va + 8 * 32 <= eva; va += 8 * 32) {
 		cache_op_ls2_8line(va, CACHEOP_LS2_S_HIT_WB_INV);
-		va += 8 * 32;
 	}
 
-	while (va < eva) {
+	for (; va < eva; va += 32) {
 		cache_op_ls2_line(va, CACHEOP_LS2_S_HIT_WB_INV);
-		va += 32;
 	}
+
+	__asm volatile("sync");
 }
 
 void
@@ -285,15 +275,15 @@
 		eva = va + mips_sdcache_way_size;
 	}
 
-	while (va + 8 * 32 <= eva) {
+	for (; va + 8 * 32 <= eva; va += 8 * 32) {
 		cache_op_ls2_8line_4way(va, CACHEOP_LS2_S_INDEX_WB_INV);
-		va += 8 * 32;
 	}
 
-	while (va < eva) {
+	for (; va < eva; va += 32) {
 		cache_op_ls2_line_4way(va, CACHEOP_LS2_S_INDEX_WB_INV);
-		va += 32;
 	}
+
+	__asm volatile("sync");
 }
 
 void

Reply via email to