PERFORCE change 93697 for review

Kip Macy kmacy at FreeBSD.org
Tue Mar 21 08:03:44 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=93697

Change 93697 by kmacy at kmacy_storage:sun4vtmp on 2006/03/21 08:02:40

	convert tl2 register spill / fill exception handlers over to
	use physical addresses

Affected files ...

.. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/wbuf.S#9 edit

Differences ...

==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/wbuf.S#9 (text+ko) ====

@@ -35,20 +35,13 @@
 
 ENTRY(fault_64bit_sn1)
 	/* XXX need to use physical addresses here */
-	GET_PCB(%g6)
-!	MAGIC_TRAP_ON
-	stx	%sp, [%g6 + PCB_RWSP]
-	SPILL(stx, %g6 + PCB_RW, 8)
-#ifdef PMAP_DEBUG
-	ldx	[%g6 + PCB_NSAVED], %g5
-	brz	%g5, 1f
-	  nop
-	MAGIC_TRAP_ON
-	MAGIC_EXIT
-1:	
-#endif	
-	mov	1, %g5
-	stx	%g5, [%g6 + PCB_NSAVED]
+	GET_PCB_PHYS(%g5, %g6)
+        wr      %g0, ASI_REAL, %asi
+        stxa    %sp, [%g6 + PCB_RWSP]%asi
+        add     %g6, PCB_RW, %g5
+        SAVE_WINDOW_ASI(%g5)
+        mov     1, %g5
+        stxa    %g5, [%g6 + PCB_NSAVED]%asi
 	saved
 	set	tl0_trap, %g5
 	wrpr	%g5, %tnpc
@@ -61,12 +54,13 @@
 END(fault_32bit_sk)
 
 ENTRY(fault_64bit_sk)
-	GET_PCPU_SCRATCH
-	stx	%sp, [PCPU_REG + PC_KWBUF_SP]
+	GET_PCPU_PHYS_SCRATCH(%g5)
+	wr	%g0, ASI_REAL, %asi
+	stxa	%sp, [PCPU_REG + PC_KWBUF_SP]%asi
 	add	PCPU_REG, PC_KWBUF, %g6
-	SAVE_WINDOW(%g6)
+	SAVE_WINDOW_ASI(%g6)
 	mov	1, %g6
-	st	%g6, [PCPU_REG + PC_KWBUF_FULL]
+	sta	%g6, [PCPU_REG + PC_KWBUF_FULL]%asi
 	saved
 	retry
 END(fault_64bit_sk)
@@ -74,7 +68,6 @@
 	
 ENTRY(fault_64bit_so0)
 	GET_PCB(%g6)
-!	MAGIC_TRAP_ON
 	ldx	[%g6 + PCB_NSAVED], %g2
 	add	%g2, 1, %g3
 	stx	%g3, [%g6 + PCB_NSAVED]
@@ -91,25 +84,25 @@
 END(fault_64bit_so0)
 
 ENTRY(fault_64bit_so1)
-	/* XXX need to use physical addresses */
-!	MAGIC_TRAP_ON
-	GET_PCB(%g6)
-	ldx	[%g6 + PCB_NSAVED], %g2
+	GET_PCB_PHYS(%g5, %g6)
+	wr	%g0, ASI_REAL, %asi
+	ldxa	[%g6 + PCB_NSAVED]%asi, %g2
 	add	%g2, 1, %g3
-	stx	%g3, [%g6 + PCB_NSAVED]
+	stxa	%g3, [%g6 + PCB_NSAVED]%asi
 
 	sll	%g2, PTR_SHIFT, %g4
 	add	%g6, PCB_RWSP, %g3
-	stx	%sp, [%g3 + %g4]
+	add	%g3, %g4, %g4
+	stxa	%sp, [%g4]%asi
+
 	sll	%g2, RW_SHIFT, %g4		! offset
 	add	%g6, PCB_RW, %g3		! start of wbuf area
 	add	%g3, %g4, %g3			! offset into wbuf area
 
-	SAVE_WINDOW(%g3)
+	SAVE_WINDOW_ASI(%g3)
 	saved
 	set	tl0_trap, %g5
 	wrpr	%g5, %tnpc
-	MAGIC_TRAP_OFF
 	done
 END(fault_64bit_so1)
 


More information about the p4-projects mailing list