Commit 8192d730 by Mans Rullgard Committed by David Edelsohn

rs6000.c (rs6000_stack_info): Always set vrsave_mask for TARGET_ALTIVEC_ABI.

2012-11-19  Mans Rullgard  <mans@mansr.com>

        * config/rs6000/rs6000.c (rs6000_stack_info): Always set vrsave_mask
        for TARGET_ALTIVEC_ABI.  Zero vrsave_save_offset if
        !TARGET_ALTIVEC_VRSAVE.
        (rs6000_emit_prologue): For SAVE_INLINE_VLRs, check vrsave_size
        not vrsave_mask.

From-SVN: r193627
parent 041af827
2012-11-19 Mans Rullgard <mans@mansr.com>
* config/rs6000/rs6000.c (rs6000_stack_info): Always set vrsave_mask
for TARGET_ALTIVEC_ABI. Zero vrsave_save_offset if
!TARGET_ALTIVEC_VRSAVE.
(rs6000_emit_prologue): For SAVE_INLINE_VLRs, check vrsave_size
not vrsave_mask.
2012-11-19 David Edelsohn <dje.gcc@gmail.com>
* system.h (vec_free): Undef.
......@@ -17838,8 +17838,7 @@ rs6000_stack_info (void)
else
info_ptr->spe_gp_size = 0;
/* Set VRSAVE register if it is saved and restored. */
if (TARGET_ALTIVEC_ABI && TARGET_ALTIVEC_VRSAVE)
if (TARGET_ALTIVEC_ABI)
info_ptr->vrsave_mask = compute_vrsave_mask ();
else
info_ptr->vrsave_mask = 0;
......@@ -18027,7 +18026,8 @@ rs6000_stack_info (void)
if (! TARGET_ALTIVEC_ABI || info_ptr->altivec_size == 0)
info_ptr->altivec_save_offset = 0;
if (! TARGET_ALTIVEC_ABI || info_ptr->vrsave_mask == 0)
/* Zero VRSAVE offset if not saved and restored. */
if (! TARGET_ALTIVEC_VRSAVE || info_ptr->vrsave_mask == 0)
info_ptr->vrsave_save_offset = 0;
if (! TARGET_SPE_ABI
......@@ -20058,7 +20058,7 @@ rs6000_emit_prologue (void)
|| (info->altivec_size != 0
&& (info->altivec_save_offset + info->altivec_size - 16
+ info->total_size - frame_off) > 32767)
|| (info->vrsave_mask != 0
|| (info->vrsave_size != 0
&& (info->vrsave_save_offset
+ info->total_size - frame_off) > 32767))
{
......
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