This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Altivec + 16 byte alignment
- From: Mike Stump <mstump at apple dot com>
- To: John David Anglin <dave at hiauly1 dot hia dot nrc dot ca>
- Cc: gcc at gcc dot gnu dot org, gianni at scaramanga dot co dot uk, kenner at vlsi1 dot ultra dot nyu dot edu
- Date: Tue, 11 Feb 2003 13:00:15 -0800
- Subject: Re: Altivec + 16 byte alignment
On Tuesday, February 11, 2003, at 11:59 AM, John David Anglin wrote:
/* Ignore alignment we can't do with expected alignment of the
boundary. */
if (alignment * BITS_PER_UNIT > PREFERRED_STACK_BOUNDARY)
alignment = PREFERRED_STACK_BOUNDARY / BITS_PER_UNIT;
but really that's wrong, and at a minimum it should warn the user
that their requested alignment isn't going to happen (better
would be
to just ensure the requested alignment). We occasionally get bug
reports about this, but so far no-one has invested the effort to
implement arbitrary stack alignment.
Now we have *yet another* macro involved in alignment!
Another issue is GCC's alignment attribute is silently ignored for
stack
locals and the documentation doesn't say that.
Let us agree that this is just a bug, or at least a bug for CPUs that
have hard requirements of say 16 bytes (Altivec, SSE) and the user asks
for 16 byte alignment and we silently only do 8 byte alignment.