This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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,


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]