rs6000.c (rs6000_stack_info): Correct altivec_padding_size calculation on AIX.

* config/rs6000/rs6000.c (rs6000_stack_info): Correct
	altivec_padding_size calculation on AIX.  Improve comment, add
	assert to verify that it's right.

From-SVN: r121485
This commit is contained in:
Geoffrey Keating 2007-02-02 01:47:02 +00:00 committed by Geoffrey Keating
parent 7c40d6662b
commit 9278121c0f
2 changed files with 9 additions and 2 deletions

View File

@ -1,5 +1,9 @@
2007-02-01 Geoffrey Keating <geoffk@apple.com>
* 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.

View File

@ -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;