patch-2.1.97 linux/arch/sparc64/kernel/dtlb_prot.S

Next file: linux/arch/sparc64/kernel/ebus.c
Previous file: linux/arch/sparc64/kernel/dtlb_miss.S
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.96/linux/arch/sparc64/kernel/dtlb_prot.S linux/arch/sparc64/kernel/dtlb_prot.S
@@ -1,9 +1,9 @@
-/* $Id: dtlb_prot.S,v 1.14 1997/08/03 09:07:00 davem Exp $
+/* $Id: dtlb_prot.S,v 1.15 1998/01/14 17:14:46 jj Exp $
  * dtlb_prot.S:	Data TLB protection code, this is included directly
  *              into the trap table.
  *
  * Copyright (C) 1996,1997 David S. Miller (davem@caip.rutgers.edu)
- * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
+ * Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
  */
 
 	/* We know kernel never takes protection trap,
@@ -15,12 +15,12 @@
 
 				/* ICACHE line 1 */
   /*0x00*/	ldxa		[%g0] ASI_DMMU, %g1		! Get TAG_TARGET
-  /*0x04*/	srlx		%g1, 8, %g3			! Position PGD offset
-  /*0x08*/	sllx		%g1, 2, %g4			! Position PMD offset
-  /*0x0c*/	and		%g3, %g2, %g3			! Mask PGD offset
-  /*0x10*/	and		%g4, %g2, %g4			! Mask PMD offset
-  /*0x14*/	ldxa		[%g7 + %g3] ASI_PHYS_USE_EC, %g5	! Load PGD
-  /*0x18*/	ldxa		[%g5 + %g4] ASI_PHYS_USE_EC, %g4	! Load PMD
+  /*0x04*/	srlx		%g1, 10, %g3			! Position PGD offset
+  /*0x08*/	and		%g1, 0xffe, %g4			! Mask PMD offset
+  /*0x0c*/	and		%g3, 0xffc, %g3			! Mask PGD offset
+  /*0x10*/	add		%g4, %g4, %g4			! Position PMD offset
+  /*0x14*/	lduwa		[%g7 + %g3] ASI_PHYS_USE_EC, %g5	! Load PGD
+  /*0x18*/	lduwa		[%g5 + %g4] ASI_PHYS_USE_EC, %g4	! Load PMD
   /*0x1c*/	ldxa		[%g0] ASI_DMMU_TSB_8KB_PTR, %g1		! For PTE offset
 
 				/* ICACHE line 2 */
@@ -34,10 +34,10 @@
   /*0x3c*/	ldxa		[%g5] ASI_DMMU, %g4			! From MMU
 
 				/* ICACHE line 3 */
-  /*0x40*/	add		%g2, 7, %g5				! Compute mask
-  /*0x44*/	andn		%g4, %g5, %g4				! Mask page
-  /*0x48*/	mov		TLB_SFSR, %g5				! read SFSR
-  /*0x4c*/	ldxa		[%g5] ASI_DMMU, %g5			! from DMMU for
+  /*0x40*/	mov		TLB_SFSR, %g5				! read SFSR
+  /*0x44*/	srlx		%g4, 13, %g4				!   Prepare...
+  /*0x48*/	ldxa		[%g5] ASI_DMMU, %g5			! from DMMU for
+  /*0x4c*/	sllx		%g4, 13, %g4				!   ...and mask page
   /*0x50*/	and		%g5, 0x10, %g5				! context bit
   /*0x54*/	or		%g4, %g5, %g4				! for prot trap
 1:/*0x58*/	stxa		%g0, [%g4] ASI_DMMU_DEMAP		! TLB flush page

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov