Date: Sun, 16 May 2004 23:08:03 +0200 (CEST) From: marcov@stack.nl (Marco van de Voort) To: freebsd-amd64@freebsd.org Subject: Re: ABI question, porting ports to amd64 Message-ID: <20040516210803.F03CC94@toad.stack.nl> In-Reply-To: <200405161316.30635.peter@wemm.org> "from Peter Wemm at May 16, 2004 01:16:30 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
y> > is %r10. So gcc puts the 4th param in %rcx, and the move moves it to > > %r10 for the kernel. > > Correct. We use the ABI argument ordering since that is what gcc gave > us when calling the stub funtions, but the syscall instruction clobbers > %rcx as it enters the kernel. > > If we were smarter, we'd only do this move if we know the syscall had 4 > or more arguments. But unfortunately, we don't have this information > when building libc. > > Or, we'd declare the syscall prototypes with an explicit override of the > register parameter assignments or something. (bad luck though if you > neglect to use the right #includes for your code and miss out a > prototype) I was always curious why the (basic) *nix syscalls weren't inlined? Can't gcc do that?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040516210803.F03CC94>