Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 08 Oct 2001 17:28:22 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        ia64@FreeBSD.org
Subject:   ast() patch
Message-ID:  <XFMail.011008172822.jhb@FreeBSD.org>

next in thread | raw e-mail | index | archive | help
Ok, now that you all have gotten ia64 farther along, perhaps one of you can
test and fix this patch to make the kernel call ast() when returing to
userland.  This should fix things like SIGARLM, userland profiling, and a few
other nits:

http://www.freebsd.org/~jhb/ia64_ast.patch

Index: ia64/ia64/exception.s
===================================================================
RCS file: /usr/cvs/src/sys/ia64/ia64/exception.s,v
retrieving revision 1.21
diff -u -r1.21 exception.s
--- ia64/ia64/exception.s       7 Oct 2001 18:40:01 -0000       1.21
+++ ia64/ia64/exception.s       8 Oct 2001 20:20:27 -0000
@@ -887,9 +887,18 @@
        ;;
        cmp.eq  p1,p2=r0,r16            // test for return to kernel mode
        ;;
-(p2)   add     r16=SIZEOF_TRAPFRAME+16,sp  // restore ar.k6 (kernel sp)
+(p1)   br.cond.dpnt.few 2f
+       alloc   r14=ar.pfs,0,0,1,0
+       ;;
+       add     out0=16,sp
+       ;;
+       // XXX: do we need to reset p1 to zero after this?
+       // XXX: do we need to save any other state?
+       br.call.sptk.many rp=ast
+       add     r16=SIZEOF_TRAPFRAME+16,sp  // restore ar.k6 (kernel sp)
        ;; 
-(p2)   mov     ar.k6=r16
+       mov     ar.k6=r16
+2:
        add     r1=SIZEOF_TRAPFRAME-16,r3 // r1=&tf_f[FRAME_F15]
        add     r2=SIZEOF_TRAPFRAME-32,r3 // r2=&tf_f[FRAME_F14]
        ;;

-- 

John Baldwin <john@baldwin.cx> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ia64" in the body of the message




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