From owner-freebsd-alpha Sun Dec 23 10:12: 2 2001 Delivered-To: freebsd-alpha@freebsd.org Received: from anchor-post-30.mail.demon.net (anchor-post-30.mail.demon.net [194.217.242.88]) by hub.freebsd.org (Postfix) with ESMTP id 89CEB37B405 for ; Sun, 23 Dec 2001 10:11:58 -0800 (PST) Received: from [62.49.251.130] (helo=herring.nlsystems.com) by anchor-post-30.mail.demon.net with esmtp (Exim 2.12 #1) id 16ID6L-0002vx-0U; Sun, 23 Dec 2001 18:11:57 +0000 Received: from salmon.nlsystems.com (salmon [10.0.0.3]) by herring.nlsystems.com (8.11.2/8.11.2) with ESMTP id fBNIAf933939; Sun, 23 Dec 2001 18:10:42 GMT (envelope-from dfr@nlsystems.com) Date: Sun, 23 Dec 2001 18:10:08 +0000 (GMT) From: Doug Rabson To: Dan Eischen Cc: Bernd Walter , Andrew Gallatin , Subject: Re: Munging jmp_bufs on alpha In-Reply-To: <3C261DE3.3EEFCEBB@vigrid.com> Message-ID: <20011223180855.A10031-100000@salmon.nlsystems.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org On Sun, 23 Dec 2001, Dan Eischen wrote: > Doug Rabson wrote: > > > > On Fri, 21 Dec 2001, Daniel Eischen wrote: > > > > > What is T12 suppose to contain in a normal function call? Is > > > it always the return address? Is that dependent on our compiler? > > > > T12 should be set to the address of the called function. Prologue code in > > the called function uses this assumption to initialise GP to the correct > > value for the module containing it. RA will be set to the return address > > by the call instruction itself. > > OK, thanks. I think I understand this a little better. > > I need to revisit my {get,set,make,swap}context patches, because > libc_r should really be using makecontext instead of having its > own MD macros to munge a jmp_buf. The alpha is a little tricky > though because a trapframe and sigframe are different formats, > and the *context routines would probably need to recognize the > difference. I think the kernel needs to get involved in order > to tag them appropriately. I would love to see libc_r using getcontext, setcontext etc. because the ia64 setjmp/longjmp are optimised to assume that we are simply unwinding an existing stack, i.e. they can't be used for context switching. -- Doug Rabson Mail: dfr@nlsystems.com Phone: +44 20 8348 6160 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message