Date: Fri, 31 May 2002 18:54:41 -0700 (PDT) From: Julian Elischer <julian@elischer.org> To: Jake Burkholder <jake@locore.ca> Cc: FreeBSD current users <current@FreeBSD.ORG> Subject: Re: Seeking OK to commit KSE MIII-again Message-ID: <Pine.BSF.4.21.0205311853360.29361-100000@InterJet.elischer.org> In-Reply-To: <20020531211925.X62759@locore.ca>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 31 May 2002, Jake Burkholder wrote: > Apparently, On Fri, May 31, 2002 at 05:49:59PM -0700, > Julian Elischer said words to the effect of; > > > interesting but not exactly brief.. :-) > > > > > > On Fri, 31 May 2002, Jake Burkholder wrote: > > > > > > > > The system call stubs in libc are leaf functions; basically just a > > > trap instruction followed by a return. They do not touch the stack > > > at all, or change the stack pointer. One of the first few instructions > > > on entry to the kernel is a save, which rotates the register window > > > and logically saves the call-safe registers onto the user stack > > > (the outs become the ins, and the kernel gets new ins and locals, > > > with the old ones being saved to the user stack once a flush is > > > performed or they get spilled out). > > > > the question is "when does it switch to the kernel stack?" > > (and back?) > > This is not done by the hardware. Its done by the trap code after > the save is executed. so if the software did it in the opposite order, you'd save to the kernel stack? (I doubt it but I have to ask..) > > > > > > > > > > > Here is a reference: http://www.sparc.com/standards/v9.ps.Z > > > > downloaded... 300+ pages.. hmm. > > > > > > > > > > Jake > > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-current" in the body of the message > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0205311853360.29361-100000>