This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
altivec: frame and dynamic stack offset
- From: Aldy Hernandez <aldyh at redhat dot com>
- To: David Edelsohn <dje at watson dot ibm dot com>
- Cc: gcc patches <gcc-patches at gcc dot gnu dot org>
- Date: 30 Nov 2001 16:14:22 -0600
- Subject: altivec: frame and dynamic stack offset
sigh, this is getting to be really time consuming. i'm going to have to
lump more patches together because tests, especially aix ones, take
forever.
the following patch changes the alignment to 16 for altivec (for
STARTING_FRAME_OFFSET and STACK_DYNAMIC_OFFSET).
bootstrapped and full regtested on liunx ppc.
ok?
--
Aldy Hernandez E-mail: aldyh@redhat.com
Professional Gypsy
Red Hat, Inc.
2001-11-30 Aldy Hernandez <aldyh@redhat.com>
* rs6000.h (STARTING_FRAME_OFFSET): Adjust for altivec.
(STACK_DYNAMIC_OFFSET): Same.
Index: config/rs6000/rs6000.h
===================================================================
RCS file: /cvs/uberbaum/gcc/config/rs6000/rs6000.h,v
retrieving revision 1.144
diff -c -p -r1.144 rs6000.h
*** rs6000.h 2001/11/30 21:21:32 1.144
--- rs6000.h 2001/11/30 22:05:09
*************** typedef struct rs6000_stack {
*** 1371,1377 ****
outgoing parameter area. */
#define STARTING_FRAME_OFFSET \
! (RS6000_ALIGN (current_function_outgoing_args_size, 8) \
+ RS6000_VARARGS_AREA \
+ RS6000_SAVE_AREA)
--- 1371,1378 ----
outgoing parameter area. */
#define STARTING_FRAME_OFFSET \
! (RS6000_ALIGN (current_function_outgoing_args_size, \
! TARGET_ALTIVEC ? 16 : 8) \
+ RS6000_VARARGS_AREA \
+ RS6000_SAVE_AREA)
*************** typedef struct rs6000_stack {
*** 1382,1388 ****
length of the outgoing arguments. The default is correct for most
machines. See `function.c' for details. */
#define STACK_DYNAMIC_OFFSET(FUNDECL) \
! (RS6000_ALIGN (current_function_outgoing_args_size, 8) \
+ (STACK_POINTER_OFFSET))
/* If we generate an insn to push BYTES bytes,
--- 1383,1390 ----
length of the outgoing arguments. The default is correct for most
machines. See `function.c' for details. */
#define STACK_DYNAMIC_OFFSET(FUNDECL) \
! (RS6000_ALIGN (current_function_outgoing_args_size, \
! TARGET_ALTIVEC ? 16 : 8) \
+ (STACK_POINTER_OFFSET))
/* If we generate an insn to push BYTES bytes,