Date: Thu, 2 Mar 2006 01:33:14 GMT From: Kip Macy <kmacy@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 92632 for review Message-ID: <200603020133.k221XE2B089822@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=92632 Change 92632 by kmacy@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 */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200603020133.k221XE2B089822>