Module Name:    src
Committed By:   matt
Date:           Tue Apr 12 18:07:57 UTC 2011

Modified Files:
        src/sys/arch/vax/vax: intvec.S

Log Message:
Add a CHMU handler to implement __lwp_getprivate_fast.


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/sys/arch/vax/vax/intvec.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/vax/vax/intvec.S
diff -u src/sys/arch/vax/vax/intvec.S:1.19 src/sys/arch/vax/vax/intvec.S:1.20
--- src/sys/arch/vax/vax/intvec.S:1.19	Mon Dec 20 00:25:45 2010
+++ src/sys/arch/vax/vax/intvec.S	Tue Apr 12 18:07:57 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: intvec.S,v 1.19 2010/12/20 00:25:45 matt Exp $   */
+/*	$NetBSD: intvec.S,v 1.20 2011/04/12 18:07:57 matt Exp $   */
 
 /*
  * Copyright (c) 1994, 1997 Ludd, University of Lule}, Sweden.
@@ -105,9 +105,9 @@
 	NOVEC;			 	# Unused, 38
 	NOVEC;			 	# Unused, 3C
 	INTVEC(syscall, KSTACK)		# main syscall trap, chmk, 40
-	INTVEC(resopflt, KSTACK)	# chme, 44
-	INTVEC(resopflt, KSTACK)	# chms, 48
-	INTVEC(resopflt, KSTACK)	# chmu, 4C
+	INTVEC(chmx, KSTACK)		# chme, 44
+	INTVEC(chmx, KSTACK)		# chms, 48
+	INTVEC(chmu, KSTACK)		# chmu, 4C
 	NOVEC;				# System Backplane Exception/BIerror, 50
 	INTVEC(cmrerr, ISTACK)		# Corrected Memory Read, 54
 	NOVEC;				# System Backplane Alert/RXCD, 58
@@ -224,6 +224,27 @@
 	TRAPCALL(resadflt, T_RESADFLT)
 
 /*
+ * Use chmu to implement a "fast" _lwp_getprivate.
+ */
+SCBENTRY(chmu)
+	cmpl	(%sp), $1
+	bneq	1f
+	mfpr	$PR_SSP, %r0		# get curlwp
+	movl	L_PRIVATE(%r0), %r0	# get l_private
+	addl2	%sp, 4
+	rei
+1:
+	brw	Xchmx
+
+/*
+ * default handler for CHME and CHMS
+ */
+SCBENTRY(chmx)
+	clrl	(%sp)			# CHM code already on stack
+	pushl	$T_RESOPFLT
+	jbr	Xtrap
+
+/*
  * Translation fault, used only when simulating page reference bit.
  * Therefore it is done a fast revalidation of the page if it is
  * referenced. Trouble here is the hardware bug on KA650 CPUs that

Reply via email to