Date: Sun, 23 Dec 2001 22:59:37 +0100 From: Bernd Walter <ticso@cicely9.cicely.de> To: Doug Rabson <dfr@nlsystems.com> Cc: Dan Eischen <eischen@vigrid.com>, Andrew Gallatin <gallatin@cs.duke.edu>, freebsd-alpha@FreeBSD.ORG Subject: Re: Munging jmp_bufs on alpha Message-ID: <20011223215937.GA63024@cicely9.cicely.de> In-Reply-To: <20011223180855.A10031-100000@salmon.nlsystems.com> References: <3C261DE3.3EEFCEBB@vigrid.com> <20011223180855.A10031-100000@salmon.nlsystems.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Dec 23, 2001 at 06:10:08PM +0000, Doug Rabson wrote:
> 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.
And sparc64 may want to load some register windows from stack before
returning _longjmp.
--
B.Walter COSMO-Project http://www.cosmo-project.de
ticso@cicely.de Usergroup info@cosmo-project.de
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011223215937.GA63024>
