From owner-freebsd-hackers Wed Dec 13 14:10:29 2000 From owner-freebsd-hackers@FreeBSD.ORG Wed Dec 13 14:10:27 2000 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from fw.wintelcom.net (ns1.wintelcom.net [209.1.153.20]) by hub.freebsd.org (Postfix) with ESMTP id 1629637B698 for ; Wed, 13 Dec 2000 14:10:27 -0800 (PST) Received: (from bright@localhost) by fw.wintelcom.net (8.10.0/8.10.0) id eBDMANR04634; Wed, 13 Dec 2000 14:10:23 -0800 (PST) Date: Wed, 13 Dec 2000 14:10:23 -0800 From: Alfred Perlstein To: Marc Tardif Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: syscall assembly Message-ID: <20001213141023.O16205@fw.wintelcom.net> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: ; from intmktg@CAM.ORG on Wed, Dec 13, 2000 at 04:25:46PM -0500 Sender: bright@fw.wintelcom.net Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG * Marc Tardif [001213 13:30] wrote: > Considering the following C code: > > #include > int main() { > open("file", O_RDONLY); > return 0; > } > > compiled with gcc -S -O2, the following > assembly code is generated: > > main: > pushl %ebp > movl %esp,%ebp > subl $8,%esp > addl $-8,%esp > pushl $0 > pushl $.LC0 > call open > xorl %eax,%eax > leave > > What is the purpose of the subl and addl > instructions? On Linux, they are simply > unexistent.. FreeBSD passes syscall args on the stack, Linux uses registers. -- -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org] "I have the heart of a child; I keep it in a jar on my desk." To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message