From owner-freebsd-alpha Sun Dec 23 14: 0:25 2001 Delivered-To: freebsd-alpha@freebsd.org Received: from srv1.cosmo-project.de (srv1.cosmo-project.de [213.83.6.106]) by hub.freebsd.org (Postfix) with ESMTP id BD70C37B416 for ; Sun, 23 Dec 2001 14:00:21 -0800 (PST) Received: (from uucp@localhost) by srv1.cosmo-project.de (8.11.6/8.11.6) with UUCP id fBNLxJ349088; Sun, 23 Dec 2001 22:59:19 +0100 (CET) (envelope-from ticso@cicely9.cicely.de) Received: from mail.cicely.de (cicely20.cicely.de [10.1.1.22]) by cicely5.cicely.de (8.12.1/8.12.1) with ESMTP id fBNLxstx012303; Sun, 23 Dec 2001 22:59:54 +0100 (CET)?g (envelope-from ticso@cicely9.cicely.de) Received: from cicely9.cicely.de (cicely9.cicely.de [10.1.7.11]) by mail.cicely.de (8.11.0/8.11.0) with ESMTP id fBNLxrW27199; Sun, 23 Dec 2001 22:59:53 +0100 (CET) Received: (from ticso@localhost) by cicely9.cicely.de (8.11.6/8.11.6) id fBNLxcY64200; Sun, 23 Dec 2001 22:59:38 +0100 (CET) (envelope-from ticso) Date: Sun, 23 Dec 2001 22:59:37 +0100 From: Bernd Walter To: Doug Rabson Cc: Dan Eischen , Andrew Gallatin , freebsd-alpha@FreeBSD.ORG Subject: Re: Munging jmp_bufs on alpha Message-ID: <20011223215937.GA63024@cicely9.cicely.de> References: <3C261DE3.3EEFCEBB@vigrid.com> <20011223180855.A10031-100000@salmon.nlsystems.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20011223180855.A10031-100000@salmon.nlsystems.com> User-Agent: Mutt/1.3.24i X-Operating-System: FreeBSD cicely9.cicely.de 5.0-CURRENT alpha 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, 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