Date: Mon, 29 Oct 2001 21:08:08 -0800 From: Marcel Moolenaar <marcel@xcllnt.net> To: John Baldwin <jhb@FreeBSD.ORG> Cc: arch@FreeBSD.ORG Subject: Re: syscall() ABI questions Message-ID: <20011029210808.A1009@dhcp01.pn.xcllnt.net> In-Reply-To: <XFMail.011029021637.jhb@FreeBSD.org> References: <XFMail.011029021637.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Oct 29, 2001 at 02:16:37AM -0800, John Baldwin wrote: > I've got some questions about td->td_retval[1] and our syscall ABI. On some > archs (ia64, alpha) we preinitialie this value to 0. On other archs (i386, > sparc64, ppc) we set it to the value of the register it will be set to so that > effectively this register's value is preserved across the syscall. My question > is do our syscall ABI's actually assume that for syscalls with only one return > value that register isn't written to? NetBSD recently changed their i386 > syscall code to preinitialize to 0 rather than %edx. Anyone have the history > on this? I don't have the history, but I do know that Linux assumes %edx is preserved. We may want to keep that in mind if for Linuxulator's sake. FYI, -- Marcel Moolenaar USPA: A-39004 marcel@xcllnt.net To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011029210808.A1009>