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