From: Paul M. <le...@us...> - 2002-05-31 17:29:01
|
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) |