Skip site navigation (1)Skip section navigation (2)
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>