This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: x86 stack alignment redux
- To: Dave Love <d dot love at dl dot ac dot uk>
- Subject: Re: x86 stack alignment redux
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Fri, 12 Dec 1997 00:00:32 -0700
- cc: egcs at cygnus dot com
- Reply-To: egcs at cygnus dot com
In message <rzq3el01z6k.fsf@djlvig.dl.ac.uk>you write:
> With this change, a glibc2-based system such as is now apparently
> becoming usable, and -malign-double, g77 users running on GNUish
> 686-based boxes should no longer suffer an average 50% perfromance hit
> because doubles on the stack only get word-aligned (or a smaller hit
> on 586). Previous discussion suggested it's a bug if STACK_BOUNDARY
> doesn't agree with the initial stack pointer alignment and glibc2
> ensures initial double alignment.
>
> This really is important to serious scientific users with high-profile
> projects of the sort I understand have just been slagging off g77/gcc
> at a high-performance computing meeting here.
>
> 1997-11-13 Dave Love <d.love@dl.ac.uk>
>
> * config/i386/linux.h (STACK_BOUNDARY): Define as 64 for glibc2.
> * config/i386/gnu.h (STACK_BOUNDARY): Define as 64.
I installed this.
However, I'm a little worried about things breaking if we happen to mix
code compiled with an old compiler (say egcs-1.0 or gcc-2.7) with code
which assumes a 64bit stack boundary. Isn't this change going to break
that case, or does the prologue/epilogue code for older compilers always
allocate 64bit hunks?
jeff