In gcc 4.5 the stack must be aligned to a 16-byte boundary when calling a function (previous versions only required a 4-byte alignment).
4-byte is reasonable for 32-bit machine. 16-byte is easy to align by just "and 0xfffffff0, %esp".
But it might cost much more memory than 4-byte boundary, doesn't it? In short, My question is why gcc 4.5 taks 16-byte as default? Is it valuable?
Thanks a lot!