Commit bcb604b6 by Fariborz Jahanian Committed by Fariborz Jahanian

Fixed a vrsave problem in the presense of save_world call in the prologue.

Oked by Dale Johannesen.

From-SVN: r99236
parent cc73528f
2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
* config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
setting of vrsave register for current function after
call to save_world is emitted.
2005-05-05 Hans-Peter Nilsson <hp@bitrange.com> 2005-05-05 Hans-Peter Nilsson <hp@bitrange.com>
* config/mmix/predicates.md: New file. * config/mmix/predicates.md: New file.
......
...@@ -13271,7 +13271,7 @@ rs6000_emit_prologue (void) ...@@ -13271,7 +13271,7 @@ rs6000_emit_prologue (void)
epilogue. */ epilogue. */
if (TARGET_ALTIVEC && TARGET_ALTIVEC_VRSAVE if (TARGET_ALTIVEC && TARGET_ALTIVEC_VRSAVE
&& !WORLD_SAVE_P (info) && info->vrsave_mask != 0) && info->vrsave_mask != 0)
{ {
rtx reg, mem, vrsave; rtx reg, mem, vrsave;
int offset; int offset;
...@@ -13286,6 +13286,8 @@ rs6000_emit_prologue (void) ...@@ -13286,6 +13286,8 @@ rs6000_emit_prologue (void)
else else
emit_insn (gen_rtx_SET (VOIDmode, reg, vrsave)); emit_insn (gen_rtx_SET (VOIDmode, reg, vrsave));
if (!WORLD_SAVE_P (info))
{
/* Save VRSAVE. */ /* Save VRSAVE. */
offset = info->vrsave_save_offset + sp_offset; offset = info->vrsave_save_offset + sp_offset;
mem mem
...@@ -13293,6 +13295,7 @@ rs6000_emit_prologue (void) ...@@ -13293,6 +13295,7 @@ rs6000_emit_prologue (void)
gen_rtx_PLUS (Pmode, frame_reg_rtx, GEN_INT (offset))); gen_rtx_PLUS (Pmode, frame_reg_rtx, GEN_INT (offset)));
set_mem_alias_set (mem, rs6000_sr_alias_set); set_mem_alias_set (mem, rs6000_sr_alias_set);
insn = emit_move_insn (mem, reg); insn = emit_move_insn (mem, reg);
}
/* Include the registers in the mask. */ /* Include the registers in the mask. */
emit_insn (gen_iorsi3 (reg, reg, GEN_INT ((int) info->vrsave_mask))); emit_insn (gen_iorsi3 (reg, reg, GEN_INT ((int) info->vrsave_mask)));
......
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