svn commit: r258246 - in head/sys/powerpc: include powerpc

Nathan Whitehorn nwhitehorn at FreeBSD.org
Sun Nov 17 02:05:21 UTC 2013


Author: nwhitehorn
Date: Sun Nov 17 02:05:20 2013
New Revision: 258246
URL: http://svnweb.freebsd.org/changeset/base/258246

Log:
  There is no reason Book-E needs to save XER and CTR on context switches.
  They aren't Book-E specific registers to begin with and, even if they were,
  are defined volatile by the ABI.

Modified:
  head/sys/powerpc/include/pcb.h
  head/sys/powerpc/powerpc/genassym.c
  head/sys/powerpc/powerpc/swtch32.S

Modified: head/sys/powerpc/include/pcb.h
==============================================================================
--- head/sys/powerpc/include/pcb.h	Sun Nov 17 02:03:45 2013	(r258245)
+++ head/sys/powerpc/include/pcb.h	Sun Nov 17 02:05:20 2013	(r258246)
@@ -70,8 +70,6 @@ struct pcb {
 			register_t	usr_vsid;	/* USER_SR segment */
 		} aim;
 		struct {
-			register_t	ctr;
-			register_t	xer;
 			register_t	dbcr0;
 		} booke;
 	} pcb_cpu;

Modified: head/sys/powerpc/powerpc/genassym.c
==============================================================================
--- head/sys/powerpc/powerpc/genassym.c	Sun Nov 17 02:03:45 2013	(r258245)
+++ head/sys/powerpc/powerpc/genassym.c	Sun Nov 17 02:05:20 2013	(r258246)
@@ -192,8 +192,6 @@ ASSYM(PCB_FPU, PCB_FPU);
 ASSYM(PCB_VEC, PCB_VEC);
 
 ASSYM(PCB_AIM_USR_VSID, offsetof(struct pcb, pcb_cpu.aim.usr_vsid));
-ASSYM(PCB_BOOKE_CTR, offsetof(struct pcb, pcb_cpu.booke.ctr));
-ASSYM(PCB_BOOKE_XER, offsetof(struct pcb, pcb_cpu.booke.xer));
 ASSYM(PCB_BOOKE_DBCR0, offsetof(struct pcb, pcb_cpu.booke.dbcr0));
 
 ASSYM(TD_LOCK, offsetof(struct thread, td_lock));

Modified: head/sys/powerpc/powerpc/swtch32.S
==============================================================================
--- head/sys/powerpc/powerpc/swtch32.S	Sun Nov 17 02:03:45 2013	(r258245)
+++ head/sys/powerpc/powerpc/swtch32.S	Sun Nov 17 02:05:20 2013	(r258246)
@@ -90,10 +90,6 @@ ENTRY(cpu_switch)
 	mflr	%r16			/* Save the link register */
 	stw	%r16,PCB_LR(%r6)
 #ifdef BOOKE
-	mfctr	%r16
-	stw	%r16,PCB_BOOKE_CTR(%r6)
-	mfxer	%r16
-	stw	%r16,PCB_BOOKE_XER(%r6)
 	mfspr	%r16,SPR_DBCR0
 	stw	%r16,PCB_BOOKE_DBCR0(%r6)
 #endif
@@ -179,10 +175,6 @@ blocked_loop:
 	isync
 #endif
 #ifdef BOOKE
-	lwz	%r5,PCB_BOOKE_CTR(%r3)
-	mtctr	%r5
-	lwz	%r5,PCB_BOOKE_XER(%r3)
-	mtctr	%r5
 	lwz	%r5,PCB_BOOKE_DBCR0(%r3)
 	mtspr	SPR_DBCR0,%r5
 #endif


More information about the svn-src-all mailing list