PERFORCE change 93742 for review
Kip Macy
kmacy at FreeBSD.org
Tue Mar 21 20:55:50 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=93742
Change 93742 by kmacy at kmacy_storage:sun4vtmp on 2006/03/21 20:55:25
fault in more spill/fill exception handlers as they get executed for the first time
Affected files ...
.. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/wbuf.S#10 edit
Differences ...
==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/wbuf.S#10 (text+ko) ====
@@ -29,8 +29,24 @@
END(fault_32bit_so1)
ENTRY(fault_64bit_sn0)
- MAGIC_TRAP_ON
- MAGIC_EXIT
+ MAGIC_TRAP_ON
+ GET_PCB(%g4)
+ stx %sp, [%g4 + PCB_RWSP]
+ add %g4, PCB_RW, %g3
+ SAVE_WINDOW(%g3)
+ mov 1, %g3
+ stx %g3, [%g4 + PCB_NSAVED]
+ set trap, %g1
+ mov %g5, %g2
+ mov %g6, %g3
+ sub %g0, 1, %g4
+
+
+ rdpr %tstate, %g5
+ and %g5, TSTATE_CWP_MASK, %g5
+ MAGIC_TRAP_OFF
+ ba,pt %xcc, tl0_utrap
+ wrpr %g0, %g5, %cwp
END(fault_64bit_sn0)
ENTRY(fault_64bit_sn1)
@@ -86,20 +102,19 @@
ENTRY(fault_64bit_so1)
GET_PCB_PHYS(%g5, %g6)
wr %g0, ASI_REAL, %asi
- ldxa [%g6 + PCB_NSAVED]%asi, %g2
- add %g2, 1, %g3
- stxa %g3, [%g6 + PCB_NSAVED]%asi
+ ldxa [%g6 + PCB_NSAVED]%asi, %g5
+ add %g5, 1, %g7
+ stxa %g7, [%g6 + PCB_NSAVED]%asi
- sll %g2, PTR_SHIFT, %g4
- add %g6, PCB_RWSP, %g3
- add %g3, %g4, %g4
- stxa %sp, [%g4]%asi
+ sll %g5, PTR_SHIFT, %g7
+ add %g6, %g7, %g7
+ stxa %sp, [%g7 + PCB_RWSP]%asi
- sll %g2, RW_SHIFT, %g4 ! offset
- add %g6, PCB_RW, %g3 ! start of wbuf area
- add %g3, %g4, %g3 ! offset into wbuf area
+ sll %g5, RW_SHIFT, %g7 ! offset
+ add %g6, %g7, %g7 ! pcb + offset
+ add %g7, PCB_RW, %g7 ! offset into wbuf area
- SAVE_WINDOW_ASI(%g3)
+ SAVE_WINDOW_ASI(%g7)
saved
set tl0_trap, %g5
wrpr %g5, %tnpc
@@ -127,7 +142,6 @@
!
wrpr %g0, 1, %tl
set TSTATE_KERNEL | TSTATE_IE, %g1
- GET_PCPU_SCRATCH
wrpr %g0, %g1, %tstate
set user_rtt, %g1
wrpr %g0, %g1, %tpc
@@ -135,12 +149,9 @@
wrpr %g0, %g1, %tnpc
set trap, %g1
- mov T_DATA_MISS, %g2 ! XXX is this always true?
+ mov %g5, %g2
mov %g6, %g3
- cmp %g5, T_ALIGNMENT
- bne %icc, 1f
- nop
-1:
+
sub %g0, 1, %g4
rdpr %wstate, %l1
sllx %l1, WSTATE_SHIFT, %l1
@@ -159,8 +170,9 @@
END(fault_64bit_fn0)
ENTRY(fault_64bit_fn1)
- MAGIC_TRAP_ON
- MAGIC_EXIT
+ wrpr %g0, 1, %gl
+ b fault_fn1_common
+ nop
END(fault_64bit_fn1)
ENTRY(fault_rtt_fn1)
More information about the p4-projects
mailing list