Stack frame question on x86 code generation

Arturas Moskvinas arturas.moskvinas@gmail.com
Sun Apr 24 09:10:00 GMT 2005


> This is to make room for the parameters to printf(); there are two, and
> each is a pointer, and hence four bytes, so the total space required is
> eight bytes.

I think you are not very correct in this part, if you write simple
function which calls function without parameter, you'll see that gcc
is also substract by 8 (12 if you use -fomit-frame-pointer). Command
pushl substracts ESP pointer by 4 itself. So i think gcc is trying to
align variable (and return address) in stack.


Arturas Moskvinas



More information about the Gcc-help mailing list