Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Mar 2006 03:02:26 GMT
From:      Kip Macy <kmacy@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 93679 for review
Message-ID:  <200603210302.k2L32QtQ094544@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=93679

Change 93679 by kmacy@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)
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200603210302.k2L32QtQ094544>