Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/ia64/ia64 cpu_switchto() returns argument oldlwp. ...



details:   https://anonhg.NetBSD.org/src/rev/dbfc54aa7046
branches:  trunk
changeset: 784032:dbfc54aa7046
user:      kiyohara <kiyohara%NetBSD.org@localhost>
date:      Tue Jan 15 13:43:27 2013 +0000

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

diffstat:

 sys/arch/ia64/ia64/context.S |  13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diffs (39 lines):

diff -r a47e08d2274c -r dbfc54aa7046 sys/arch/ia64/ia64/context.S
--- a/sys/arch/ia64/ia64/context.S      Tue Jan 15 13:30:12 2013 +0000
+++ b/sys/arch/ia64/ia64/context.S      Tue Jan 15 13:43:27 2013 +0000
@@ -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 @@
        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)
        ;;
 }



Home | Main Index | Thread Index | Old Index