Commit 9278121c by Geoffrey Keating Committed by Geoffrey Keating

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
parent 7c40d666
2007-02-01 Geoffrey Keating <geoffk@apple.com> 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 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
64-bit. 64-bit.
......
...@@ -13392,10 +13392,11 @@ rs6000_stack_info (void) ...@@ -13392,10 +13392,11 @@ rs6000_stack_info (void)
info_ptr->vrsave_save_offset info_ptr->vrsave_save_offset
= info_ptr->gp_save_offset - info_ptr->vrsave_size; = 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) if (info_ptr->altivec_size != 0)
info_ptr->altivec_padding_size info_ptr->altivec_padding_size
= (-info_ptr->vrsave_save_offset) % 16; = info_ptr->vrsave_save_offset & 0xF;
else else
info_ptr->altivec_padding_size = 0; info_ptr->altivec_padding_size = 0;
...@@ -13403,6 +13404,8 @@ rs6000_stack_info (void) ...@@ -13403,6 +13404,8 @@ rs6000_stack_info (void)
= info_ptr->vrsave_save_offset = info_ptr->vrsave_save_offset
- info_ptr->altivec_padding_size - info_ptr->altivec_padding_size
- info_ptr->altivec_size; - info_ptr->altivec_size;
gcc_assert (info_ptr->altivec_size == 0
|| info_ptr->altivec_save_offset % 16 == 0);
/* Adjust for AltiVec case. */ /* Adjust for AltiVec case. */
info_ptr->ehrd_offset = info_ptr->altivec_save_offset - ehrd_size; info_ptr->ehrd_offset = info_ptr->altivec_save_offset - ehrd_size;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment