Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Mar 2010 01:47:05 +0000 (UTC)
From:      Juli Mallett <jmallett@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r205503 - in user/jmallett/octeon/sys/mips: include mips
Message-ID:  <201003230147.o2N1l51c008095@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jmallett
Date: Tue Mar 23 01:47:05 2010
New Revision: 205503
URL: http://svn.freebsd.org/changeset/base/205503

Log:
  o) Use some pointer-width and register-width macros rather than width-specific
     instructions.
  o) Eliminate insque and remque which FreeBSD doesn't use.
  
  Sponsored by:	Packet Forensics

Modified:
  user/jmallett/octeon/sys/mips/include/asm.h
  user/jmallett/octeon/sys/mips/mips/copystr.S
  user/jmallett/octeon/sys/mips/mips/support.S
  user/jmallett/octeon/sys/mips/mips/swtch.S

Modified: user/jmallett/octeon/sys/mips/include/asm.h
==============================================================================
--- user/jmallett/octeon/sys/mips/include/asm.h	Tue Mar 23 01:36:50 2010	(r205502)
+++ user/jmallett/octeon/sys/mips/include/asm.h	Tue Mar 23 01:47:05 2010	(r205503)
@@ -314,8 +314,8 @@ _C_LABEL(x):
 	nop                                         ;\
 	move	a0, v0                              ;\
 	GET_CPU_PCPU(s1)                            ;\
-	lw	s3, PC_CURPCB(s1)                   ;\
-	lw	s1, PC_CURTHREAD(s1)                ;\
+	PTR_L	s3, PC_CURPCB(s1)                   ;\
+	PTR_L	s1, PC_CURTHREAD(s1)                ;\
 	lw	s2, TD_FLAGS(s1)                    ;\
 	li	s0, TDF_ASTPENDING | TDF_NEEDRESCHED;\
 	and	s2, s0                              ;\
@@ -765,7 +765,7 @@ _C_LABEL(x):
 #endif
 
 #define	GET_CPU_PCPU(reg)		\
-	lw	reg, _C_LABEL(pcpup);
+	PTR_L	reg, _C_LABEL(pcpup);
 
 /*
  * Description of the setjmp buffer

Modified: user/jmallett/octeon/sys/mips/mips/copystr.S
==============================================================================
--- user/jmallett/octeon/sys/mips/mips/copystr.S	Tue Mar 23 01:36:50 2010	(r205502)
+++ user/jmallett/octeon/sys/mips/mips/copystr.S	Tue Mar 23 01:47:05 2010	(r205503)
@@ -98,11 +98,11 @@ END(copystr)
 LEAF(copyinstr)
 	.set noreorder
 	.set noat
-	lw	t2, pcpup
-	lw	v1, PC_CURPCB(t2)
+	GET_CPU_PCPU(t2)
+	PTR_L	v1, PC_CURPCB(t2)
 	PTR_LA	v0, _C_LABEL(copystrerr)
 	blt	a0, zero, _C_LABEL(copystrerr)
-	sw	v0, PCB_ONFAULT(v1)
+	PTR_S	v0, PCB_ONFAULT(v1)
 	move	t0, a2
 	beq	a2, zero, 4f
 1:
@@ -121,7 +121,7 @@ LEAF(copyinstr)
 	sw	a2, 0(a3)		/*xxx mips64 unsafe -- long */
 3:
 	j	ra				# v0 is 0 or ENAMETOOLONG
-	sw	zero, PCB_ONFAULT(v1)
+	PTR_S	zero, PCB_ONFAULT(v1)
 	.set reorder
 	.set at
 END(copyinstr)
@@ -136,11 +136,11 @@ END(copyinstr)
 LEAF(copyoutstr)
 	.set noreorder
 	.set noat
-	lw	t2, pcpup
-	lw	v1, PC_CURPCB(t2)
+	GET_CPU_PCPU(t2)
+	PTR_L	v1, PC_CURPCB(t2)
 	PTR_LA	v0, _C_LABEL(copystrerr)
 	blt	a1, zero, _C_LABEL(copystrerr)
-	sw	v0, PCB_ONFAULT(v1)
+	PTR_S	v0, PCB_ONFAULT(v1)
 	move	t0, a2
 	beq	a2, zero, 4f
 1:
@@ -159,13 +159,12 @@ LEAF(copyoutstr)
 	sw	a2, 0(a3)		/*xxx mips64 unsafe -- long */
 3:
 	j	ra				# v0 is 0 or ENAMETOOLONG
-	sw	zero, PCB_ONFAULT(v1)
+	PTR_S	zero, PCB_ONFAULT(v1)
 	.set reorder
 	.set at
 END(copyoutstr)
 
 LEAF(copystrerr)
-	sw	zero, PCB_ONFAULT(v1)
 	j	ra
 	li	v0, EFAULT			# return EFAULT
 END(copystrerr)

Modified: user/jmallett/octeon/sys/mips/mips/support.S
==============================================================================
--- user/jmallett/octeon/sys/mips/mips/support.S	Tue Mar 23 01:36:50 2010	(r205502)
+++ user/jmallett/octeon/sys/mips/mips/support.S	Tue Mar 23 01:47:05 2010	(r205503)
@@ -623,34 +623,6 @@ LEAF(fswintrberr)
 	li	v0, -1
 END(fswintrberr)
 
-/*
- * Insert 'p' after 'q'.
- *	_insque(p, q)
- *		caddr_t p, q;
- */
-LEAF(_insque)
-	lw	v0, 0(a1)		# v0 = q->next
-	sw	a1, 4(a0)		# p->prev = q
-	sw	v0, 0(a0)		# p->next = q->next
-	sw	a0, 4(v0)		# q->next->prev = p
-	j	ra
-	sw	a0, 0(a1)		# q->next = p
-END(_insque)
-
-/*
- * Remove item 'p' from queue.
- *	_remque(p)
- *		caddr_t p;
- */
-LEAF(_remque)
-	lw	v0, 0(a0)		# v0 = p->next
-	lw	v1, 4(a0)		# v1 = p->prev
-	nop
-	sw	v0, 0(v1)		# p->prev->next = p->next
-	j	ra
-	sw	v1, 4(v0)		# p->next->prev = p->prev
-END(_remque)
-
 /*--------------------------------------------------------------------------
  *
  * Mips_GetCOUNT --

Modified: user/jmallett/octeon/sys/mips/mips/swtch.S
==============================================================================
--- user/jmallett/octeon/sys/mips/mips/swtch.S	Tue Mar 23 01:36:50 2010	(r205502)
+++ user/jmallett/octeon/sys/mips/mips/swtch.S	Tue Mar 23 01:47:05 2010	(r205503)
@@ -156,7 +156,7 @@ LEAF(fork_trampoline)
  */
 	.set	noat
 	GET_CPU_PCPU(k1)
-	lw	k1, PC_CURPCB(k1)
+	PTR_L	k1, PC_CURPCB(k1)
 
 	RESTORE_U_PCB_REG(t0, MULLO, k1)
 	RESTORE_U_PCB_REG(t1, MULHI, k1)
@@ -278,10 +278,10 @@ NON_LEAF(cpu_switch, CALLFRAME_SIZ, ra)
 	ITLBNOPFIX
 	beqz	a0, mips_sw1
 	move	a3, a0
-	lw	a0, TD_PCB(a0)		# load PCB addr of curproc
+	PTR_L	a0, TD_PCB(a0)		# load PCB addr of curproc
 	SAVE_U_PCB_CONTEXT(sp, PREG_SP, a0)		# save old sp
-	subu	sp, sp, CALLFRAME_SIZ
-	sw	ra, CALLFRAME_RA(sp)
+	PTR_SUBU	sp, sp, CALLFRAME_SIZ
+	REG_S	ra, CALLFRAME_RA(sp)
 	.mask	0x80000000, (CALLFRAME_RA - CALLFRAME_SIZ)
 	SAVE_U_PCB_CONTEXT(s0, PREG_S0, a0)		# do a 'savectx()'
 	SAVE_U_PCB_CONTEXT(s1, PREG_S1, a0)
@@ -305,13 +305,13 @@ getpc:
 	 * to be saved with the other registers do so here.
 	 */
 
-	sw	a2, TD_LOCK(a3)			# Switchout td_lock 
+	PTR_S	a2, TD_LOCK(a3)			# Switchout td_lock 
 
 mips_sw1:
 #if defined(SMP) && defined(SCHED_ULE)
 	PTR_LA	t0, _C_LABEL(blocked_lock)
 blocked_loop:
-	lw	t1, TD_LOCK(a1)
+	PTR_L	t1, TD_LOCK(a1)
 	beq	t0, t1, blocked_loop
 	nop
 #endif
@@ -320,10 +320,10 @@ blocked_loop:
  * Switch to new context.
  */
 	GET_CPU_PCPU(a3)
-	sw	a1, PC_CURTHREAD(a3)
-	lw	a2, TD_PCB(a1)
-	sw	a2, PC_CURPCB(a3)
-	lw	v0, TD_REALKSTACK(a1)
+	PTR_S	a1, PC_CURTHREAD(a3)
+	PTR_L	a2, TD_PCB(a1)
+	PTR_S	a2, PC_CURPCB(a3)
+	PTR_L	v0, TD_REALKSTACK(a1)
 	li	s0, (MIPS_KSEG2_START+VM_KERNEL_ALLOC_OFFSET)		# If Uarea addr is below kseg2,
 	bltu	v0, s0, sw2			# no need to insert in TLB.
 	lw	a1, TD_UPTE+0(s7)		# t0 = first u. pte
@@ -350,7 +350,7 @@ entry0:
 	nop
 pgm:
 	bltz	s0, entry0set
-	li	t1, MIPS_KSEG0_START		# invalidate tlb entry
+	REG_LI	t1, MIPS_KSEG0_START		# invalidate tlb entry
 	sll	s0, PAGE_SHIFT + 1
 	addu	t1, s0
 	mtc0	t1, COP_0_TLB_HI
@@ -380,7 +380,7 @@ sw2:
 /*
  * Restore registers and return.
  */
-	lw	a0, TD_PCB(s7)
+	PTR_L	a0, TD_PCB(s7)
 	RESTORE_U_PCB_CONTEXT(gp, PREG_GP, a0)
 	RESTORE_U_PCB_CONTEXT(v0, PREG_SR, a0)	# restore kernel context
 	RESTORE_U_PCB_CONTEXT(ra, PREG_RA, a0)
@@ -441,7 +441,7 @@ LEAF(MipsSwitchFPState)
  * First read out the status register to make sure that all FP operations
  * have completed.
  */
-	lw	a0, TD_PCB(a0)			# get pointer to pcb for proc
+	PTR_L	a0, TD_PCB(a0)			# get pointer to pcb for proc
 	cfc1	t0, FPC_CSR			# stall til FP done
 	cfc1	t0, FPC_CSR			# now get status
 	li	t3, ~SR_COP_1_BIT
@@ -551,13 +551,13 @@ END(MipsSwitchFPState)
  *----------------------------------------------------------------------------
  */
 LEAF(MipsSaveCurFPState)
-	lw	a0, TD_PCB(a0)			# get pointer to pcb for thread
+	PTR_L	a0, TD_PCB(a0)			# get pointer to pcb for thread
 	mfc0	t1, COP_0_STATUS_REG		# Disable interrupts and
 	li	t0, SR_COP_1_BIT		#  enable the coprocessor
 	mtc0	t0, COP_0_STATUS_REG
 	ITLBNOPFIX
 	GET_CPU_PCPU(a1)
-	sw	zero, PC_FPCURTHREAD(a1)	# indicate state has been saved
+	PTR_S	zero, PC_FPCURTHREAD(a1)	# indicate state has been saved
 /*
  * First read out the status register to make sure that all FP operations
  * have completed.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201003230147.o2N1l51c008095>