Hi All

While compiling code for SPARC Architecture, Its seems reasonable that
when calling a new function, stack Size of 92 + 4(for alignment) is
allocated. But
with gcc version greater than 3.0, It allocates 104 bytes for the
stack of a new function.

Can anyone please let me know the reason of the difference of 8 bytes?

-------- test.c

int foo();

int main()
{
  foo();
 return 0;
}

Corresponding assembly using gcc 4.0.1
-------- test.s ( sparc-gcc -S test.c -O3 )
        .align 4
        .global main
        .type   main, #function
        .proc   04
main:
        save    %sp, -104, %sp       ; why save 104 bytes????
        call    foo, 0
         mov    0, %i0
        jmp     %i7+8
         restore
        .size   main, .-main
        .ident  "GCC: (GNU) 4.0.1

------


Any help will be appreciated.
Thanks,
Inder

Reply via email to