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