Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Mar 2004 05:08:21 -0800 (PST)
From:      bear <skuma17@yahoo.com>
To:        cpghost@cordula.ws
Cc:        freebsd-questions@freebsd.org
Subject:   Re: one simple question
Message-ID:  <20040304130821.96170.qmail@web9907.mail.yahoo.com>
In-Reply-To: <20040304081612.48B2940893@fw.farid-hajji.net>

next in thread | previous in thread | raw e-mail | index | archive | help
thank you very much for the reply
yes and I am using gcc 3.2.2
if you "gdb" the executable and "disassemble main"
you will see the line like that
but if you use gcc -S something.s something.c
it won't appear in the assembly code

and I google around, I think it does the alignment for optimization
purpose, in that case the memory access will be faster according to the
article.

best regards,
Chungwei

--- Cordula's Web <cpghost@cordula.ws> wrote:
> > I compile a test C file. I notice there are a few lines at the
> > beginning of the assembly code. I want to know what it means, but
> > can't figure out one of them. Can anyone tell me what the
> > following line does please?
> > 
> > and    $0xfffffff0,%esp
> 
> Hmmm, when I compile the simplest possible C file:
> 
> -------------------------------
> int
> main (int argc, char *argv[])
> {
>   return 0;
> }
> --------------------------------
> 
> I get this:
> 
> --------------------------------
> 	.file	"test1.c"
> 	.version	"01.01"
> gcc2_compiled.:
> .text
> 	.p2align 2,0x90
> .globl main
> 		.type		 main,@function
> main:
> 	pushl %ebp
> 	movl %esp,%ebp
> 	xorl %eax,%eax
> 	jmp .L2
> 	.p2align 2,0x90
> .L2:
> 	leave
> 	ret
> .Lfe1:
> 		.size		 main,.Lfe1-main
> 	.ident	"GCC: (GNU) c 2.95.4 20020320 [FreeBSD]"
> 
> --------------------------------
> 
> No such thing as:
> 
> and    $0xfffffff0,%esp
> 
> Are you using gcc 3.3.x?
> 
> Anyway, this code looks like it would align the stack
> the stack pointer...
> 
> > best regards
> > Chungwei
> 
> -- 
> Cordula's Web. http://www.cordula.ws/
> 


=====
bear



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040304130821.96170.qmail>