Date: Wed, 13 Dec 2000 18:02:44 -0500 (EST) From: Marc Tardif <intmktg@CAM.ORG> To: Iain Templeton <iain@research.canon.com.au> Cc: freebsd-hackers@FreeBSD.ORG, Alfred Perlstein <bright@wintelcom.net>, Drew Eckhardt <drew@PoohSticks.ORG> Subject: Re: syscall assembly Message-ID: <Pine.LNX.4.10.10012131759550.12720-100000@Gloria.CAM.ORG> In-Reply-To: <Pine.LNX.4.10.10012140949390.22824-100000@blow.research.canon.com.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 14 Dec 2000, Iain Templeton wrote: > On Wed, 13 Dec 2000, Alfred Perlstein wrote: > > > subl $8,%esp > > addl $-8,%esp > > pushl $0 > > pushl $.LC0 > > call open > > > > why the subl then addl? > > > Well, as a thoroughly rough guess, the subl is probably to create space > on the stack for the args, and the addl is to align the stack to a 16 > byte address? > Perhaps, but no matter the degree of optimisation, the 16 byte of space is performed in two instructions. This leads me to believe is it most likely a pipelining issue for the following pushl instructions. As for subl'ing and addl'ing 8 bytes instead of 4, as required by each pushl, that can very well be an aligning issue which would seem to make more sense for the x86. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.10.10012131759550.12720-100000>