svn commit: r203474 - head/sys/mips/mips
Neel Natu
neel at FreeBSD.org
Thu Feb 4 05:25:59 UTC 2010
Author: neel
Date: Thu Feb 4 05:25:59 2010
New Revision: 203474
URL: http://svn.freebsd.org/changeset/base/203474
Log:
Clean up all places in exception.S that fiddle with 'pcpup' directly. We now
use the GET_CPU_PCPU() macro exclusively.
This isolates the users of pcpu data from its implementation details.
Reviewed by: imp
Modified:
head/sys/mips/mips/exception.S
Modified: head/sys/mips/mips/exception.S
==============================================================================
--- head/sys/mips/mips/exception.S Thu Feb 4 05:07:20 2010 (r203473)
+++ head/sys/mips/mips/exception.S Thu Feb 4 05:25:59 2010 (r203474)
@@ -146,19 +146,10 @@ VECTOR_END(MipsTLBMiss)
*----------------------------------------------------------------------------
*/
MipsDoTLBMiss:
-#xxx mips64 unsafe?
-#ifndef SMP
- lui k1, %hi(_C_LABEL(pcpup))
-#endif
#k0 already has BadVA
bltz k0, 1f #02: k0<0 -> 1f (kernel fault)
srl k0, k0, SEGSHIFT - 2 #03: k0=seg offset (almost)
-#xxx mips64 unsafe?
-#ifdef SMP
GET_CPU_PCPU(k1)
-#else
- lw k1, %lo(_C_LABEL(pcpup))(k1)
-#endif
lw k1, PC_SEGBASE(k1)
beqz k1, 2f #05: make sure segbase is not null
andi k0, k0, 0x7fc #06: k0=seg offset (mask 0x3)
@@ -821,12 +812,7 @@ NLEAF(MipsKernTLBInvalidException)
sltu k1, k0, k1
beqz k1, 1f
nop
-#ifdef SMP
GET_CPU_PCPU(k1)
-#else
- lui k1, %hi(_C_LABEL(pcpup))
- lw k1, %lo(_C_LABEL(pcpup))(k1)
-#endif
lw k1, PC_SEGBASE(k1) # works for single cpu????
beqz k1, _C_LABEL(MipsKernGenException) # seg tab is null
nop
@@ -917,13 +903,7 @@ NLEAF(MipsUserTLBInvalidException)
sltu k1, k0, k1
beqz k1, _C_LABEL(MipsUserGenException)
nop
-#xxx mips64 unsafe?
-#ifdef SMP
GET_CPU_PCPU(k1)
-#else
- lui k1, %hi(_C_LABEL(pcpup))
- lw k1, %lo(_C_LABEL(pcpup))(k1)
-#endif
lw k1, PC_SEGBASE(k1) # works for single cpu????
beqz k1, _C_LABEL(MipsUserGenException) # seg tab is null
nop
More information about the svn-src-head
mailing list