diff options
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/config/rs6000/rs6000.h | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5dbb18c..f44146d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-11-30 Aldy Hernandez <aldyh@redhat.com> + + * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Adjust for altivec. + (STACK_DYNAMIC_OFFSET): Same. + 2001-11-30 Richard Henderson <rth@redhat.com> * c-decl.c (duplicate_decls): Copy DECL_SAVED_TREE. diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 70a4ec9..11747ef 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -1371,7 +1371,8 @@ typedef struct rs6000_stack { outgoing parameter area. */ #define STARTING_FRAME_OFFSET \ - (RS6000_ALIGN (current_function_outgoing_args_size, 8) \ + (RS6000_ALIGN (current_function_outgoing_args_size, \ + TARGET_ALTIVEC ? 16 : 8) \ + RS6000_VARARGS_AREA \ + RS6000_SAVE_AREA) @@ -1382,7 +1383,8 @@ typedef struct rs6000_stack { 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) \ + (RS6000_ALIGN (current_function_outgoing_args_size, \ + TARGET_ALTIVEC ? 16 : 8) \ + (STACK_POINTER_OFFSET)) /* If we generate an insn to push BYTES bytes, |
