svn commit: r205215 - in projects/ppc64/sys/powerpc: aim powerpc

Nathan Whitehorn nwhitehorn at FreeBSD.org
Tue Mar 16 16:11:17 UTC 2010


Author: nwhitehorn
Date: Tue Mar 16 16:11:16 2010
New Revision: 205215
URL: http://svn.freebsd.org/changeset/base/205215

Log:
  Correct a final nit with USER_SR handling: USER_ADDR is no longer at
  USER_SR << 28 on powerpc64, so make sure to invalidate the correct
  SLB entry when switching threads.

Modified:
  projects/ppc64/sys/powerpc/aim/locore32.S
  projects/ppc64/sys/powerpc/aim/locore64.S
  projects/ppc64/sys/powerpc/aim/swtch32.S
  projects/ppc64/sys/powerpc/aim/swtch64.S
  projects/ppc64/sys/powerpc/powerpc/genassym.c

Modified: projects/ppc64/sys/powerpc/aim/locore32.S
==============================================================================
--- projects/ppc64/sys/powerpc/aim/locore32.S	Tue Mar 16 16:01:19 2010	(r205214)
+++ projects/ppc64/sys/powerpc/aim/locore32.S	Tue Mar 16 16:11:16 2010	(r205215)
@@ -62,7 +62,6 @@
 
 #include <machine/trap.h>
 #include <machine/param.h>
-#include <machine/sr.h>
 #include <machine/spr.h>
 #include <machine/psl.h>
 #include <machine/asm.h>

Modified: projects/ppc64/sys/powerpc/aim/locore64.S
==============================================================================
--- projects/ppc64/sys/powerpc/aim/locore64.S	Tue Mar 16 16:01:19 2010	(r205214)
+++ projects/ppc64/sys/powerpc/aim/locore64.S	Tue Mar 16 16:11:16 2010	(r205215)
@@ -62,7 +62,6 @@
 
 #include <machine/trap.h>
 #include <machine/param.h>
-#include <machine/sr.h>
 #include <machine/spr.h>
 #include <machine/psl.h>
 #include <machine/asm.h>

Modified: projects/ppc64/sys/powerpc/aim/swtch32.S
==============================================================================
--- projects/ppc64/sys/powerpc/aim/swtch32.S	Tue Mar 16 16:01:19 2010	(r205214)
+++ projects/ppc64/sys/powerpc/aim/swtch32.S	Tue Mar 16 16:11:16 2010	(r205215)
@@ -63,7 +63,6 @@
 
 #include <machine/trap.h>
 #include <machine/param.h>
-#include <machine/sr.h>
 #include <machine/psl.h>
 #include <machine/asm.h>
 

Modified: projects/ppc64/sys/powerpc/aim/swtch64.S
==============================================================================
--- projects/ppc64/sys/powerpc/aim/swtch64.S	Tue Mar 16 16:01:19 2010	(r205214)
+++ projects/ppc64/sys/powerpc/aim/swtch64.S	Tue Mar 16 16:11:16 2010	(r205215)
@@ -63,7 +63,6 @@
 
 #include <machine/trap.h>
 #include <machine/param.h>
-#include <machine/sr.h>
 #include <machine/psl.h>
 #include <machine/asm.h>
 
@@ -223,8 +222,10 @@ blocked_loop:
 	ld	%r1,PCB_SP(%r3)		/* Load the stack pointer */
 	ld	%r2,PCB_TOC(%r3)	/* Load the TOC pointer */
 
-	li	%r5,USER_SR		/* Load the USER_SR segment reg */
-	sldi	%r5,%r5,28
+	lis	%r5,USER_ADDR at highesta	/* Load the USER_SR segment reg */
+	ori	%r5,%r5,USER_ADDR at highera
+	sldi	%r5,%r5,32
+	oris	%r5,%r5,USER_ADDR at ha
 	slbie	%r5
 	ld	%r5,PCB_AIM_USR_VSID(%r3)
 	ld	%r6,PCB_AIM_USR_ESID(%r3)

Modified: projects/ppc64/sys/powerpc/powerpc/genassym.c
==============================================================================
--- projects/ppc64/sys/powerpc/powerpc/genassym.c	Tue Mar 16 16:01:19 2010	(r205214)
+++ projects/ppc64/sys/powerpc/powerpc/genassym.c	Tue Mar 16 16:11:16 2010	(r205215)
@@ -102,6 +102,8 @@ ASSYM(TLBSAVE_BOOKE_R31, TLBSAVE_BOOKE_R
 ASSYM(MTX_LOCK, offsetof(struct mtx, mtx_lock));
 
 #if defined(AIM)
+ASSYM(USER_SR, USER_SR);
+ASSYM(USER_ADDR, USER_ADDR);
 #ifdef __powerpc64__
 ASSYM(PM_SLB, offsetof(struct pmap, pm_slb));
 #else


More information about the svn-src-projects mailing list