[Bug target/53383] Allow -mpreferred-stack-boundary=3 on x86-64
hubicka at ucw dot cz
gcc-bugzilla@gcc.gnu.org
Sun May 20 11:15:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53383
--- Comment #12 from Jan Hubicka <hubicka at ucw dot cz> 2012-05-20 10:15:06 UTC ---
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53383
>
> --- Comment #11 from H.J. Lu <hjl.tools at gmail dot com> 2012-05-20 02:04:40 UTC ---
> (In reply to comment #10)
> > The problem is va_args doing alignment based on stack pointer, i.e. in:
> > int
> >
> > return va_arg (p, __int128);
> > }
> >
>
> > addq $15, %rax
> > andq $-16, %rax
>
> This isn't necessary. If __int128 is put on stack by caller,
> the stack must be aligned at 16 bytes.
Not when you call function with -fpreferred-stack-boundary=3
and it is itself compiled with -fpreferred-stack-boudnary=4
and calls another functions passing __int128.
Thus the ABI incompatibility.
Honza
More information about the Gcc-bugs
mailing list