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