PERFORCE change 92632 for review
Kip Macy
kmacy at FreeBSD.org
Wed Mar 1 17:33:16 PST 2006
http://perforce.freebsd.org/chv.cgi?CH=92632
Change 92632 by kmacy at kmacy_storage:sun4v_work on 2006/03/02 01:32:47
disable magic traps in spill / fill handlers
fix alignment of cleanwin at tl1
change tl0_end to more sensible tl1_end
change size of pcb_pc to fix alignment trap
Affected files ...
.. //depot/projects/kmacy_sun4v/src/sys/sun4v/include/pcb.h#4 edit
.. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#12 edit
Differences ...
==== //depot/projects/kmacy_sun4v/src/sys/sun4v/include/pcb.h#4 (text+ko) ====
@@ -42,8 +42,8 @@
uint32_t pcb_ufp[64]; /* used for regs in handling user floating point exc */
uint64_t pcb_rwsp[MAXWIN]; /* spbuf sp's for each wbuf */
uint64_t pcb_flags;
- uint32_t pcb_nsaved; /* number of windows saved in pcb_rw */
- uint32_t pcb_pc;
+ uint64_t pcb_nsaved; /* number of windows saved in pcb_rw */
+ uint64_t pcb_pc;
uint64_t pcb_sp;
uint64_t pcb_pa; /* physical address of pcb */
uint64_t pcb_pad[4];
==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/exception.S#12 (text+ko) ====
@@ -70,10 +70,14 @@
#include "assym.s"
#if 1
+#define SPILL_FILL_MAGIC_TRAP_ON nop
+#define SPILL_FILL_MAGIC_TRAP_OFF nop
#define MAGIC_TRAP_ON ta 0x77
#define MAGIC_TRAP_OFF ta 0x78
/*#define MAGIC_TRAP_OFF nop */
#else
+#define SPILL_FILL_MAGIC_TRAP_ON nop
+#define SPILL_FILL_MAGIC_TRAP_OFF nop
#define MAGIC_TRAP_ON nop
#define MAGIC_TRAP_OFF nop
#endif
@@ -120,7 +124,7 @@
*/
#define SPILL(storer, bias, size, asi) \
- MAGIC_TRAP_ON ;\
+ SPILL_FILL_MAGIC_TRAP_ON ;\
mov 0 + bias, %g1 ;\
storer %l0, [%sp + %g1]asi ;\
mov size + bias, %g2 ;\
@@ -146,7 +150,7 @@
storer %i7, [%g5 + %g4]asi
#define FILL(loader, bias, size, asi) \
- MAGIC_TRAP_ON ;\
+ SPILL_FILL_MAGIC_TRAP_ON ;\
mov 0 + bias, %g1 ;\
loader [%sp + %g1]asi, %l0 ;\
mov size + bias, %g2 ;\
@@ -571,7 +575,7 @@
#define spill_64bit_asi(asi, target) \
SPILL(stxa, SPOFF, 8, asi) ; \
saved ; \
- MAGIC_TRAP_OFF ; \
+ SPILL_FILL_MAGIC_TRAP_OFF ; \
retry ; \
.skip (31-27)*4 ; \
ba,a,pt %xcc, fault_64bit_##target ; \
@@ -606,7 +610,7 @@
#define fill_64bit_asi(asi, target) \
FILL(ldxa, SPOFF, 8, asi) ; \
restored ; \
- MAGIC_TRAP_OFF ; \
+ SPILL_FILL_MAGIC_TRAP_OFF ; \
retry ; \
.skip (31-27)*4 ; \
ba,a,pt %xcc, fault_64bit_##target ; \
@@ -1837,7 +1841,7 @@
tl1_reserved 9 ! 0x200-0x208
tl1_insn_miss_209:
insn_miss ! 0x209
- tl1_reserved 27 ! 0x20a-0x224
+ tl1_reserved 26 ! 0x20a-0x223
tl1_clean_window_224:
clean_window ! 0x224
tl1_divide_228:
@@ -1894,8 +1898,8 @@
tl1_reserved 32 ! 0x2e0-0x2ff
tl1_soft_traps:
tl1_reserved 256
-.globl tl0_end
-tl0_end:
+.globl tl1_end
+tl1_end:
/*
* no discretionary traps at TL 1 - leaving us with a 24k trap table
*/
More information about the p4-projects
mailing list