Sent from my iPhone

On Dec 15, 2008, at 1:33 PM, "whaley at cs dot utsa dot edu" <gcc-bugzi...@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

Reply via email to