Port-i386 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Fix GCC's preferred stack alignment to match psABI



On Mon, Sep 17, 2012 at 06:34:45PM +0100, David Laight wrote:
> If we set -mstackalign and align the stack in exec and for threads,
> then the stack stays aligned through gcc calls - giving aligned
> 8 byte items, but any frames that need 16bit alignment get the stack
> realigned (which involves using %ebp relative addressing for the args
> and %esp relative addressing for the local (unless alloca() is also used)).

As shown by the attached minimal test case, GCC does not correctly
maintain stack alignment if only -mstackalign is used. In short, it
doesn't work correctly. This is independent of the question whether
preserving a stack alignment of 128bit is preferable or not.

Joerg
void a(int *);

void b(void)
{
        int __attribute__((aligned(8))) c;
        a(&c);
        a(&c);
}



Home | Main Index | Thread Index | Old Index