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