Module Name:    src
Committed By:   matt
Date:           Tue Mar 31 01:15:26 UTC 2015

Modified Files:
        src/sys/arch/riscv/riscv: spl.S

Log Message:
Get curcpu() from L_CPU(tp)


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/riscv/riscv/spl.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/riscv/riscv/spl.S
diff -u src/sys/arch/riscv/riscv/spl.S:1.1 src/sys/arch/riscv/riscv/spl.S:1.2
--- src/sys/arch/riscv/riscv/spl.S:1.1	Sat Mar 28 16:13:56 2015
+++ src/sys/arch/riscv/riscv/spl.S	Tue Mar 31 01:15:26 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: spl.S,v 1.1 2015/03/28 16:13:56 matt Exp $ */
+/* $NetBSD: spl.S,v 1.2 2015/03/31 01:15:26 matt Exp $ */
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -31,7 +31,7 @@
 #include <machine/asm.h>
 #include "assym.h"
 
-__RCSID("$NetBSD: spl.S,v 1.1 2015/03/28 16:13:56 matt Exp $")
+__RCSID("$NetBSD: spl.S,v 1.2 2015/03/31 01:15:26 matt Exp $")
 
 	.data
 	.globl	_C_LABEL(ipl_sr_map)
@@ -50,22 +50,22 @@ _C_LABEL(ipl_sr_map):
 
 ENTRY_NP(splx)
 	// a0 = new lower IPL
-	csrr	a3, sscratch		// get curcpu()
-	lw	t0, CI_CPL(a3)		// get current IPL
+	PTR_L	a3, L_CPU(tp)		// get curcpu()
+	INT_L	t0, CI_CPL(a3)		// get current IPL
 	beq	a0, t0, 2f
 .L_splset:
 	// a0 = new ipl
-	la	t0, ipl_sr_map
+	PTR_LA	t0, ipl_sr_map
 	slli	a1, a0, 2		// make integer index
 	add	t0, t0, a1		// index into table
-	lw	t0, (t0)		// get new mask bits to clear
+	INT_L	t0, (t0)		// get new mask bits to clear
 	li	t2, SR_IM		// get mask bits
 	xor	t0, t0, t2		// invert mask bits
 	csrc	sstatus, t2		// block everything
-	sw	a0, CI_CPL(a3)		// change IPL
+	INT_S	a0, CI_CPL(a3)		// change IPL
 	beqz	t0, 2f
 	csrs	sstatus, t0		// unmask appropriate bits
-2:	lw	t4, CI_SOFTINTS(a3)	// get softint mask
+2:	INT_L	t4, CI_SOFTINTS(a3)	// get softint mask
 	srl	t4, t4, a0		// see what softints are pending.
 	beqz	t4, 3f			// none, just return
 	// there are softints that need to be delivered, so instead of
@@ -80,10 +80,10 @@ END(splx)
 #error IPL_NONE is not 0
 #endif
 ENTRY_NP(spl0)
-	csrr	a3, sscratch		// get curcpu()
+	PTR_L	a3, L_CPU(tp)		// get curcpu()
 	li	t0, SR_IM|SR_EI		// load SR_IM|EI
 	csrci	sstatus, SR_EI		// disable interrupts
-	sw	zero, CI_CPL(a3)	// set current IPL to IPL_NONE
+	INT_S	zero, CI_CPL(a3)	// set current IPL to IPL_NONE
 	csrs	sstatus, t0		// unmask all & enable interrupts
 	// spl0() is only called rarely so the overhead of always calling
 	// softint_deliver is minimal.
@@ -91,61 +91,61 @@ ENTRY_NP(spl0)
 END(spl0)
 
 ENTRY_NP(splhigh)
-	csrr	a3, sscratch		// get curcpu()
-	lw	a0, CI_CPL(a3)		// get current IPL
+	PTR_L	a3, L_CPU(tp)		// get curcpu()
+	INT_L	a0, CI_CPL(a3)		// get current IPL
 	li	t1, SR_IM		// load SR_IM
 	li	t0, IPL_HIGH		// 
 	csrc	sstatus, t1		// mask all interrupts
-	sw	t0, CI_CPL(a3)		// set it to IPL_HIGH
+	INT_S	t0, CI_CPL(a3)		// set it to IPL_HIGH
 	ret
 END(splhigh)
 
 ENTRY_NP(splsoftclock)
 	li	a0, IPL_SOFTCLOCK
-	csrr	a3, sscratch		// get curcpu()
+	PTR_L	a3, L_CPU(tp)		// get curcpu()
 	j	.L_splset
 END(splsoftclock)
 
 ENTRY_NP(splsoftbio)
 	li	a0, IPL_SOFTBIO
-	csrr	a3, sscratch		// get curcpu()
+	PTR_L	a3, L_CPU(tp)		// get curcpu()
 	j	.L_splset
 END(splsoftbio)
 
 ENTRY_NP(splsoftnet)
 	li	a0, IPL_SOFTNET
-	csrr	a3, sscratch		// get curcpu()
+	PTR_L	a3, L_CPU(tp)		// get curcpu()
 	j	.L_splset
 END(splsoftnet)
 
 ENTRY_NP(splsoftserial)
 	li	a0, IPL_SOFTSERIAL
-	csrr	a3, sscratch		// get curcpu()
+	PTR_L	a3, L_CPU(tp)		// get curcpu()
 	j	.L_splset
 END(splsoftserial)
 
 ENTRY_NP(splvm)
 	li	a0, IPL_VM
-	csrr	a3, sscratch		// get curcpu()
+	PTR_L	a3, L_CPU(tp)		// get curcpu()
 	j	.L_splset
 END(splvm)
 
 ENTRY_NP(splsched)
 	li	a0, IPL_SCHED
-	csrr	a3, sscratch		// get curcpu()
+	PTR_L	a3, L_CPU(tp)		// get curcpu()
 	j	.L_splset
 END(splsched)
 
 ENTRY_NP(splddb)
 	li	a0, IPL_DDB
-	csrr	a3, sscratch		// get curcpu()
+	PTR_L	a3, L_CPU(tp)		// get curcpu()
 	j	.L_splset
 END(splddb)
 
 ENTRY_NP(splraise)
 	mv	t0, a0			// need a0 for return value
-	csrr	a3, sscratch		// get curcpu()
-	lw	a0, CI_CPL(a3)		// get current IPL
+	PTR_L	a3, L_CPU(tp)		// get curcpu()
+	INT_L	a0, CI_CPL(a3)		// get current IPL
 	bgt	t0, a0, .L_splset	// set if new IPL is higher
 	ret
 END(splraise)

Reply via email to