This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/38496] Gcc misaligns arrays when stack is forced follow the x8632 ABI
- From: "pinskia at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Dec 2008 21:39:25 -0000
- Subject: [Bug target/38496] Gcc misaligns arrays when stack is forced follow the x8632 ABI
- References: <bug-38496-12761@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #16 from pinskia at gmail dot com 2008-12-15 21:39 -------
Subject: Re: Gcc misaligns arrays when stack is forced follow the x8632 ABI
Sent from my iPhone
On Dec 15, 2008, at 1:33 PM, "whaley at cs dot utsa dot edu"
<gcc-bugzilla@gcc.gnu.org
> wrote:
>
>
> ------- Comment #15 from whaley at cs dot utsa dot edu 2008-12-15
> 21:32 -------
>> GCC chose to change the *unwritten* standard for the ABI in use for
>> IA32 GNU/Linux.
>
> This is not true. Prior to this change, gcc followed the *written*
> standard
> provided by the LSB.
LSB was written years after we had already did this back in gcc 3.0.
Please check the history before saying gcc followed a written standard
when none existed when this change was done.
> You chose to violate the standard, or to put as you seem
> to prefer, you chose to declare that you followed no standard, as
> the written
> standard previously used by pretty much all OSes on the x86 was
> suddenly
> unusable.
>
>> The SCO document may have been useful before SSE, but processor
>> architecture and language developments have made it problematic for
>> many years.
>
> This is not even trivially true. SSE requires no change in the ABI
> to support:
> it is purely convenience to start with a known 16-byte alignment: an
> andb and a
> register save/restore fixes the problem completely, without
> abandoning the
> standard. I believe gcc still abides by this "problematic for many
> years"
> standard in all respects except stack alignment, which is a trivial
> problem to
> solve and still abide by the standard. So, you abandoned standard
> compliance
> to solve a minor irritant, that you yourself have fixed in the new
> 4.4 series.
> From 4.4 on, you broke the standard for no gain at all, since you
> have now
> added the minor complexity of manually aligning the stack anyway.
>
> Of course the standard seems outdated to us: it is supporting an
> architecture
> that is decades old, and that is the strength of it. If you want
> the shiny new
> stuff, you go to x86-64.
>
>
> --
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38496
>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38496