From owner-freebsd-alpha Sun Dec 23 10: 0: 5 2001 Delivered-To: freebsd-alpha@freebsd.org Received: from pcnet1.pcnet.com (pcnet1.pcnet.com [204.213.232.3]) by hub.freebsd.org (Postfix) with ESMTP id E160B37B419 for ; Sun, 23 Dec 2001 09:59:58 -0800 (PST) Received: from vigrid.com (pm3-pt8.pcnet.net [206.105.29.82]) by pcnet1.pcnet.com (8.12.1/8.12.1) with ESMTP id fBNHwmFe029575; Sun, 23 Dec 2001 12:58:49 -0500 (EST) Message-ID: <3C261DE3.3EEFCEBB@vigrid.com> Date: Sun, 23 Dec 2001 13:09:39 -0500 From: Dan Eischen X-Mailer: Mozilla 4.74 [en] (X11; U; FreeBSD 5.0-CURRENT i386) X-Accept-Language: en MIME-Version: 1.0 To: Doug Rabson Cc: Bernd Walter , Andrew Gallatin , freebsd-alpha@FreeBSD.ORG Subject: Re: Munging jmp_bufs on alpha References: <20011223104757.B457-100000@salmon.nlsystems.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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 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. -- Dan Eischen To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message