Module Name:    src
Committed By:   kiyohara
Date:           Tue Jan 15 13:43:27 UTC 2013

Modified Files:
        src/sys/arch/ia64/ia64: context.S

Log Message:
cpu_switchto() returns argument oldlwp.  Not &ci->ci_curlwp.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/ia64/ia64/context.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/ia64/ia64/context.S
diff -u src/sys/arch/ia64/ia64/context.S:1.3 src/sys/arch/ia64/ia64/context.S:1.4
--- src/sys/arch/ia64/ia64/context.S:1.3	Fri Nov 27 03:23:10 2009
+++ src/sys/arch/ia64/ia64/context.S	Tue Jan 15 13:43:27 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: context.S,v 1.3 2009/11/27 03:23:10 rmind Exp $	*/
+/*	$NetBSD: context.S,v 1.4 2013/01/15 13:43:27 kiyohara Exp $	*/
 	
 /*
  * Copyright (c) 2003 Marcel Moolenaar
@@ -28,7 +28,6 @@
  * $FreeBSD: src/sys/ia64/ia64/context.S,v 1.3 2003/07/02 12:57:07 ru Exp $
  */
 
-#include <sys/cdefs.h>
 #include <machine/asm.h>
 #include "assym.h"
 
@@ -831,13 +830,19 @@ ENTRY(cpu_switchto, 3)
 	mov		loc1=rp			// save rp (loc1 = rp)
 	;;
 }
+{	.mmi
+	st8		[r14]=in1		// ci->ci_curlwp = newlwp
+	mov		r9=in0			// r9 = oldlwp
+	nop		0
+	;;
+}
 {	.mmb
+	nop		0
 	/*
 	 * Switch to new context, if p6 == true.
 	 * We assum to return to restorectx_return_here for swapped context.
 	 */
-(p6)	ld8		out0=[r3]		// if (p6) out0 = pcb of &newlwp
-	xchg8		r9=[r14],in1		// ci->ci_curlwp = newlwp
+(p6)	ld8		out0=[r3]		// out0 = pcb of &newlwp
 (p6)	br.call.sptk.many rp=restorectx		// if (p6) restorectx(out0)
 	;;
 }

Reply via email to