one simple question
bear
skuma17 at yahoo.com
Thu Mar 4 05:08:22 PST 2004
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 at 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, at 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
More information about the freebsd-questions
mailing list