From: geoffk Date: Fri, 2 Feb 2007 01:47:02 +0000 (+0000) Subject: * config/rs6000/rs6000.c (rs6000_stack_info): Correct X-Git-Tag: upstream/4.9.2~50664 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8429b20485f6eb8838df56f34ea6c3cab19af9a0;p=platform%2Fupstream%2Flinaro-gcc.git * config/rs6000/rs6000.c (rs6000_stack_info): Correct altivec_padding_size calculation on AIX. Improve comment, add assert to verify that it's right. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121485 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7aadf4e..8124079 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2007-02-01 Geoffrey Keating + * config/rs6000/rs6000.c (rs6000_stack_info): Correct + altivec_padding_size calculation on AIX. Improve comment, add + assert to verify that it's right. + * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for 64-bit. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index dbb1f55..8c05776 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -13392,10 +13392,11 @@ rs6000_stack_info (void) info_ptr->vrsave_save_offset = info_ptr->gp_save_offset - info_ptr->vrsave_size; - /* Align stack so vector save area is on a quadword boundary. */ + /* Align stack so vector save area is on a quadword boundary. + The padding goes above the vectors. */ if (info_ptr->altivec_size != 0) info_ptr->altivec_padding_size - = (-info_ptr->vrsave_save_offset) % 16; + = info_ptr->vrsave_save_offset & 0xF; else info_ptr->altivec_padding_size = 0; @@ -13403,6 +13404,8 @@ rs6000_stack_info (void) = info_ptr->vrsave_save_offset - info_ptr->altivec_padding_size - info_ptr->altivec_size; + gcc_assert (info_ptr->altivec_size == 0 + || info_ptr->altivec_save_offset % 16 == 0); /* Adjust for AltiVec case. */ info_ptr->ehrd_offset = info_ptr->altivec_save_offset - ehrd_size;