Update of /cvsroot/linux-mips/linux/arch/mips/mm
In directory usw-pr-cvs1:/tmp/cvs-serv14706
Modified Files:
pg-vr4131.c
Log Message:
r4k_clear_page_d32() update. Get things more in sync with the generic r4k
approach, but make sure to use Index_Writeback_Inv_D.
Index: pg-vr4131.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/pg-vr4131.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- pg-vr4131.c 10 Mar 2002 08:26:36 -0000 1.2
+++ pg-vr4131.c 31 May 2002 17:28:58 -0000 1.3
@@ -127,50 +127,31 @@
void r4k_clear_page_d32(void *page)
{
- unsigned long reg1;
-
__asm__ __volatile__(
".set\tnoreorder\n\t"
".set\tnoat\n\t"
".set\tmips3\n\t"
- "mfc0 %1,$16\n\t"
- "nop\n\t"
- "mtc0\t$0,$28\n\t"
- "mtc0\t$0,$29\n\t"
- "nop\n\t"
- "daddiu\t$1,%0,%3\n"
- "1:\tcache\t0x09,(%0)\n\t"
- "cache\t%4,(%0)\n\t"
+ "daddiu\t$1,%0,%2\n"
+ "1:\tcache\t%3,(%0)\n\t"
"sd\t$0,(%0)\n\t"
"sd\t$0,8(%0)\n\t"
- "cache\t0x09,(%0)\n\t"
- "cache\t0x09,16(%0)\n\t"
"sd\t$0,16(%0)\n\t"
"sd\t$0,24(%0)\n\t"
"daddiu\t%0,64\n\t"
- "cache\t0x09,16(%0)\n\t"
- "cache\t0x09,-32(%0)\n\t"
- "cache\t%4,-32(%0)\n\t"
+ "cache\t%3,-32(%0)\n\t"
"sd\t$0,-32(%0)\n\t"
"sd\t$0,-24(%0)\n\t"
- "cache\t0x09,-32(%0)\n\t"
- "cache\t0x09,-16(%0)\n\t"
"sd\t$0,-16(%0)\n\t"
- "sd\t$0,-8(%0)\n\t"
- "cache\t0x09,-16(%0)\n\t"
- "nop\n\t"
"bne\t$1,%0,1b\n\t"
- "nop\n\t"
- "mtc0 %1,$16\n\t"
- "nop\n\t"
+ "sd\t$0,-8(%0)\n\t"
".set\tmips0\n\t"
".set\tat\n\t"
".set\treorder"
- :"=r" (page), "=&r" (reg1)
+ :"=r" (page)
:"0" (page),
"I" (PAGE_SIZE),
"i" (Index_Writeback_Inv_D)
- :"$1", "memory");
+ :"$1","memory");
}
void r4k_copy_page_d32(void *to, void *from)
|