Module Name: src
Committed By: palle
Date: Sat Jul 19 20:58:12 UTC 2014
Modified Files:
src/sys/arch/sparc64/sparc64: locore.s
Log Message:
sun4v: Introduce a NORMAL_GLOBALS macro - first used in sparc_interrupt - other
relevant uses will be handled as the sun4v work is progressesing - ok martin@
To generate a diff of this commit:
cvs rdiff -u -r1.364 -r1.365 src/sys/arch/sparc64/sparc64/locore.s
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/sparc64/sparc64/locore.s
diff -u src/sys/arch/sparc64/sparc64/locore.s:1.364 src/sys/arch/sparc64/sparc64/locore.s:1.365
--- src/sys/arch/sparc64/sparc64/locore.s:1.364 Wed Jul 16 19:53:18 2014
+++ src/sys/arch/sparc64/sparc64/locore.s Sat Jul 19 20:58:12 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.364 2014/07/16 19:53:18 palle Exp $ */
+/* $NetBSD: locore.s,v 1.365 2014/07/19 20:58:12 palle Exp $ */
/*
* Copyright (c) 2006-2010 Matthew R. Green
@@ -141,6 +141,24 @@
.endm
+ .macro NORMAL_GLOBALS scratch
+#ifdef SUN4V
+ sethi %hi(cputyp), \scratch
+ ld [\scratch + %lo(cputyp)], \scratch
+ cmp \scratch, CPU_SUN4V
+ bne,pt %icc, 2f
+ nop
+ /* sun4v */
+ ba 3f
+ wrpr %g0, 0, %gl
+2:
+#endif
+ /* sun4u */
+ wrpr %g0, PSTATE_KERN, %pstate
+3:
+ .endm
+
+
#ifdef SUN4V
/* Misc. sun4v macros */
@@ -3582,7 +3600,7 @@ ENTRY_NOPROFILE(sparc_interrupt)
#endif
INTR_SETUP(-CC64FSZ-TF_SIZE)
! Switch to normal globals so we can save them
- wrpr %g0, PSTATE_KERN, %pstate
+ NORMAL_GLOBALS %g5
stx %g1, [%sp + CC64FSZ + STKB + TF_G + ( 1*8)]
stx %g2, [%sp + CC64FSZ + STKB + TF_G + ( 2*8)]
stx %g3, [%sp + CC64FSZ + STKB + TF_G + ( 3*8)]