PERFORCE change 93679 for review

Kip Macy kmacy at FreeBSD.org
Tue Mar 21 03:02:27 UTC 2006


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

Change 93679 by kmacy at kmacy_storage:sun4vtmp on 2006/03/21 03:01:25

	32-bit store after 64-bit load was causing nsaved to be always read as 0

Affected files ...

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

Differences ...

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

@@ -36,8 +36,17 @@
 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]
 	saved
@@ -65,7 +74,8 @@
 	
 ENTRY(fault_64bit_so0)
 	GET_PCB(%g6)
-	ld	[%g6 + PCB_NSAVED], %g2
+!	MAGIC_TRAP_ON
+	ldx	[%g6 + PCB_NSAVED], %g2
 	add	%g2, 1, %g3
 	stx	%g3, [%g6 + PCB_NSAVED]
 
@@ -82,21 +92,24 @@
 
 ENTRY(fault_64bit_so1)
 	/* XXX need to use physical addresses */
+!	MAGIC_TRAP_ON
 	GET_PCB(%g6)
-	ld	[%g6 + PCB_NSAVED], %g2
+	ldx	[%g6 + PCB_NSAVED], %g2
 	add	%g2, 1, %g3
 	stx	%g3, [%g6 + PCB_NSAVED]
 
 	sll	%g2, PTR_SHIFT, %g4
 	add	%g6, PCB_RWSP, %g3
 	stx	%sp, [%g3 + %g4]
-	sll	%g2, RW_SHIFT, %g4
-	add	%g4, %g6, %g4
-	add	%g4, PCB_RW, %g3
+	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)
 	saved
 	set	tl0_trap, %g5
 	wrpr	%g5, %tnpc
+	MAGIC_TRAP_OFF
 	done
 END(fault_64bit_so1)
 


More information about the p4-projects mailing list