svn commit: r206077 - user/jmallett/octeon/sys/mips/mips
Juli Mallett
jmallett at FreeBSD.org
Fri Apr 2 06:10:58 UTC 2010
Author: jmallett
Date: Fri Apr 2 06:10:58 2010
New Revision: 206077
URL: http://svn.freebsd.org/changeset/base/206077
Log:
Use MFC0 and MTC0 macros for badvaddr and exc_pc, which may be 64-bit.
Modified:
user/jmallett/octeon/sys/mips/mips/exception.S
Modified: user/jmallett/octeon/sys/mips/mips/exception.S
==============================================================================
--- user/jmallett/octeon/sys/mips/mips/exception.S Fri Apr 2 06:06:50 2010 (r206076)
+++ user/jmallett/octeon/sys/mips/mips/exception.S Fri Apr 2 06:10:58 2010 (r206077)
@@ -106,7 +106,7 @@
.set noat
VECTOR(MipsTLBMiss, unknown)
j _C_LABEL(MipsDoTLBMiss)
- mfc0 k0, COP_0_BAD_VADDR # get the fault address
+ MFC0 k0, COP_0_BAD_VADDR # get the fault address
nop
VECTOR_END(MipsTLBMiss)
@@ -136,7 +136,7 @@ MipsDoTLBMiss:
#endif
PTR_ADDU k1, k0, k1 #07: k1=seg entry address
PTR_L k1, 0(k1) #08: k1=seg entry
- mfc0 k0, COP_0_BAD_VADDR #09: k0=bad address (again)
+ MFC0 k0, COP_0_BAD_VADDR #09: k0=bad address (again)
beq k1, zero, 2f #0a: ==0 -- no page table
srl k0, PAGE_SHIFT - 2 #0b: k0=VPN (aka va>>10)
@@ -291,8 +291,8 @@ SlowFault:
mfhi v1 ;\
mfc0 a0, COP_0_STATUS_REG ;\
mfc0 a1, COP_0_CAUSE_REG ;\
- mfc0 a2, COP_0_BAD_VADDR ;\
- mfc0 a3, COP_0_EXC_PC ;\
+ MFC0 a2, COP_0_BAD_VADDR ;\
+ MFC0 a3, COP_0_EXC_PC ;\
SAVE_REG(v0, MULLO, sp) ;\
SAVE_REG(v1, MULHI, sp) ;\
SAVE_REG(a0, SR, sp) ;\
@@ -450,12 +450,12 @@ NNON_LEAF(MipsUserGenException, CALLFRAM
SAVE_U_PCB_REG(s2, S2, k1)
SAVE_U_PCB_REG(s3, S3, k1)
SAVE_U_PCB_REG(s4, S4, k1)
- mfc0 a2, COP_0_BAD_VADDR # Third arg is the fault addr
+ MFC0 a2, COP_0_BAD_VADDR # Third arg is the fault addr
SAVE_U_PCB_REG(s5, S5, k1)
SAVE_U_PCB_REG(s6, S6, k1)
SAVE_U_PCB_REG(s7, S7, k1)
SAVE_U_PCB_REG(t8, T8, k1)
- mfc0 a3, COP_0_EXC_PC # Fourth arg is the pc.
+ MFC0 a3, COP_0_EXC_PC # Fourth arg is the pc.
SAVE_U_PCB_REG(t9, T9, k1)
SAVE_U_PCB_REG(gp, GP, k1)
SAVE_U_PCB_REG(sp, SP, k1)
@@ -689,7 +689,7 @@ NNON_LEAF(MipsUserIntr, CALLFRAME_SIZ, r
mfhi v1
mfc0 a0, COP_0_STATUS_REG
mfc0 a1, COP_0_CAUSE_REG
- mfc0 a3, COP_0_EXC_PC
+ MFC0 a3, COP_0_EXC_PC
SAVE_U_PCB_REG(v0, MULLO, k1)
SAVE_U_PCB_REG(v1, MULHI, k1)
SAVE_U_PCB_REG(a0, SR, k1)
@@ -806,7 +806,7 @@ NLEAF(MipsTLBInvalidException)
.set noat
.set noreorder
- mfc0 k0, COP_0_BAD_VADDR
+ MFC0 k0, COP_0_BAD_VADDR
li k1, VM_MAXUSER_ADDRESS
sltu k1, k0, k1
bnez k1, 1f
@@ -837,7 +837,7 @@ NLEAF(MipsTLBInvalidException)
beqz k1, 3f /* invalid page table page pointer */
nop
- mfc0 k0, COP_0_BAD_VADDR
+ MFC0 k0, COP_0_BAD_VADDR
srl k0, PAGE_SHIFT - 2
andi k0, 0xffc
PTR_ADDU k1, k1, k0
@@ -982,7 +982,7 @@ END(MipsTLBInvalidException)
*/
NLEAF(MipsTLBMissException)
.set noat
- mfc0 k0, COP_0_BAD_VADDR # k0=bad address
+ MFC0 k0, COP_0_BAD_VADDR # k0=bad address
li k1, (VM_MAX_KERNEL_ADDRESS) # check fault address against
sltu k1, k1, k0 # upper bound of kernel_segmap
bnez k1, _C_LABEL(MipsKernGenException) # out of bound
@@ -997,7 +997,7 @@ NLEAF(MipsTLBMissException)
#endif
PTR_ADDU k1, k0, k1 # k1=seg entry address
PTR_L k1, 0(k1) # k1=seg entry
- mfc0 k0, COP_0_BAD_VADDR # k0=bad address (again)
+ MFC0 k0, COP_0_BAD_VADDR # k0=bad address (again)
beq k1, zero, _C_LABEL(MipsKernGenException) # ==0 -- no page table
srl k0, 10 # k0=VPN (aka va>>10)
andi k0, k0, 0xff8 # k0=page tab offset
More information about the svn-src-user
mailing list