What is the tradeoff for a smaller stack border?

In gcc 4.5, the stack must be aligned with a 16-byte boundary when calling the function (previous versions only required 4-byte alignment).

The 4-byte option is suitable for a 32-bit machine. 16-byte is easy to align only "and 0xfffffff0,% esp".

But it can cost a lot more memory than a 4-byte border, right? In short, my question is, why is gcc 4.5 taks 16 bytes each by default? Is this valuable?

Thank you so much!

+5
source share
1 answer

16- /. , .

memcpy , /.

, , - gcc-.

+3

All Articles