Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Dec 2000 17:12:40 -0500 (EST)
From:      Marc Tardif <intmktg@CAM.ORG>
To:        Alfred Perlstein <bright@wintelcom.net>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: syscall assembly
Message-ID:  <Pine.LNX.4.10.10012131707550.12495-100000@Gloria.CAM.ORG>
In-Reply-To: <20001213141023.O16205@fw.wintelcom.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 13 Dec 2000, Alfred Perlstein wrote:
> * Marc Tardif <intmktg@CAM.ORG> [001213 13:30] wrote:
[ snip ]
> >         subl $8,%esp
> >         addl $-8,%esp
> >         pushl $0
> >         pushl $.LC0
> >         call open
> 
> FreeBSD passes syscall args on the stack, Linux uses registers.
> 
So why is %esp displaced by 16 bytes when only 8 bytes
are necessary (4 for $0 and 4 for $.LC0)? And couldn't
the compiler use a single instruction such as
subl $16,%esp or addl $-16,%esp? Are two instructions
used for pipelining purposes, where subl is synchro-
nised with the first pushl and addl with the second
pushl?



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.10012131707550.12495-100000>