Date: Wed, 1 May 2002 20:15:32 +0100 From: Doug Rabson <dfr@nlsystems.com> To: Marcel Moolenaar <marcel@xcllnt.net> Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/ia64/ia64 exception.s src/sys/ia64/include frame.h Message-ID: <200205012015.32377.dfr@nlsystems.com> In-Reply-To: <20020501181758.GB415@athlon.pn.xcllnt.net> References: <200204300637.g3U6bQc25956@freefall.freebsd.org> <200205010940.33776.dfr@nlsystems.com> <20020501181758.GB415@athlon.pn.xcllnt.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 01 May 2002 7:17 pm, Marcel Moolenaar wrote: > On Wed, May 01, 2002 at 09:40:33AM +0100, Doug Rabson wrote: > > On Tuesday 30 April 2002 8:57 pm, Marcel Moolenaar wrote: > > > On Tue, Apr 30, 2002 at 04:53:59PM +0100, Doug Rabson wrote: > > > > On Mon, 29 Apr 2002, Marcel Moolenaar wrote: > > > > > marcel 2002/04/29 23:37:25 PDT > > > > > > > > > > Modified files: > > > > > sys/ia64/ia64 exception.s > > > > > sys/ia64/include frame.h > > > > > Log: > > > > > Add ar.lc and ar.ec to the trapframe. These are not saved for > > > > > syscalls, only for exceptions. > > > > > > > > I was kind-of relying on the C calling conventions saving/restori= ng > > > > these as needed. > > > > > > ar.lc is callee saved. We have to do it even for the syscall case. > > > ar.ec is automatic as part of the call/return mechanism. We need to > > > explicitly save it only if it's possible to have syscalls inlined. > > > > What I actually meant by that statement was that since the exception > > entry path didn't disturb the value of ar.lc (or ar.ec for that matte= r) > > and that it can rely on the value being preserved by the higher level > > handlers (e.g. trap, interrupt, syscall etc), it can also rely on the > > value in > > exception_restore being the user's value. > > That is correct, provided we save them on context switches, right? Right. > > BTW: The reason I added them was for ptrace(2). Thats as good a reason as any. Another way would be to use the unwind sys= tem=20 to find if/where the register had been saved and access it either directl= y or=20 at the save location. --=20 Doug Rabson=09=09=09=09Mail: dfr@nlsystems.com =09=09=09=09=09Phone: +44 20 8348 6160 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200205012015.32377.dfr>