Commit 0be76840 by David Edelsohn Committed by David Edelsohn

rs6000.c (rs6000_sr_alias_set): Delete.

        * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
        (rs6000_override_options): Remove initialization of
        rs6000_sr_alias_set.
        (rs6000_emit_eh_reg_restore): Use gen_frame_mem.
        (rs6000_emit_stack_tie): Same.
        (emit_frame_save): Same.
        (gen_frame_mem_offset): Same.
        (rs6000_emit_prologue): Same.
        (rs6000_emit_epilogue): Same.

From-SVN: r107489
parent 7934558d
2005-11-25 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete.
(rs6000_override_options): Remove initialization of
rs6000_sr_alias_set.
(rs6000_emit_eh_reg_restore): Use gen_frame_mem.
(rs6000_emit_stack_tie): Same.
(emit_frame_save): Same.
(gen_frame_mem_offset): Same.
(rs6000_emit_prologue): Same.
(rs6000_emit_epilogue): Same.
2005-11-25 Andrew Pinski <pinskia@physics.uc.edu> 2005-11-25 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24989 PR middle-end/24989
......
...@@ -234,9 +234,6 @@ static enum { ...@@ -234,9 +234,6 @@ static enum {
int toc_initialized; int toc_initialized;
char toc_label_name[10]; char toc_label_name[10];
/* Alias set for saves and restores from the rs6000 stack. */
static GTY(()) int rs6000_sr_alias_set;
/* Control alignment for fields within structures. */ /* Control alignment for fields within structures. */
/* String from -malign-XXXXX. */ /* String from -malign-XXXXX. */
int rs6000_alignment_flags; int rs6000_alignment_flags;
...@@ -1406,9 +1403,6 @@ rs6000_override_options (const char *default_cpu) ...@@ -1406,9 +1403,6 @@ rs6000_override_options (const char *default_cpu)
&& (DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN)) && (DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN))
REAL_MODE_FORMAT (TFmode) = &ibm_extended_format; REAL_MODE_FORMAT (TFmode) = &ibm_extended_format;
/* Allocate an alias set for register saves & restores from stack. */
rs6000_sr_alias_set = new_alias_set ();
if (TARGET_TOC) if (TARGET_TOC)
ASM_GENERATE_INTERNAL_LABEL (toc_label_name, "LCTOC", 1); ASM_GENERATE_INTERNAL_LABEL (toc_label_name, "LCTOC", 1);
...@@ -13443,9 +13437,7 @@ rs6000_emit_eh_reg_restore (rtx source, rtx scratch) ...@@ -13443,9 +13437,7 @@ rs6000_emit_eh_reg_restore (rtx source, rtx scratch)
|| current_function_calls_alloca || current_function_calls_alloca
|| info->total_size > 32767) || info->total_size > 32767)
{ {
tmp = gen_rtx_MEM (Pmode, frame_rtx); tmp = gen_frame_mem (Pmode, frame_rtx);
MEM_NOTRAP_P (tmp) = 1;
set_mem_alias_set (tmp, rs6000_sr_alias_set);
emit_move_insn (operands[1], tmp); emit_move_insn (operands[1], tmp);
frame_rtx = operands[1]; frame_rtx = operands[1];
} }
...@@ -13453,9 +13445,7 @@ rs6000_emit_eh_reg_restore (rtx source, rtx scratch) ...@@ -13453,9 +13445,7 @@ rs6000_emit_eh_reg_restore (rtx source, rtx scratch)
sp_offset = info->total_size; sp_offset = info->total_size;
tmp = plus_constant (frame_rtx, info->lr_save_offset + sp_offset); tmp = plus_constant (frame_rtx, info->lr_save_offset + sp_offset);
tmp = gen_rtx_MEM (Pmode, tmp); tmp = gen_frame_mem (Pmode, tmp);
MEM_NOTRAP_P (tmp) = 1;
set_mem_alias_set (tmp, rs6000_sr_alias_set);
emit_move_insn (tmp, operands[0]); emit_move_insn (tmp, operands[0]);
} }
else else
...@@ -13550,15 +13540,15 @@ rs6000_aix_emit_builtin_unwind_init (void) ...@@ -13550,15 +13540,15 @@ rs6000_aix_emit_builtin_unwind_init (void)
emit_label (no_toc_save_needed); emit_label (no_toc_save_needed);
} }
/* This ties together stack memory (MEM with an alias set of /* This ties together stack memory (MEM with an alias set of frame_alias_set)
rs6000_sr_alias_set) and the change to the stack pointer. */ and the change to the stack pointer. */
static void static void
rs6000_emit_stack_tie (void) rs6000_emit_stack_tie (void)
{ {
rtx mem = gen_rtx_MEM (BLKmode, gen_rtx_REG (Pmode, STACK_POINTER_REGNUM)); rtx mem = gen_frame_mem (BLKmode,
gen_rtx_REG (Pmode, STACK_POINTER_REGNUM));
set_mem_alias_set (mem, rs6000_sr_alias_set);
emit_insn (gen_stack_tie (mem)); emit_insn (gen_stack_tie (mem));
} }
...@@ -13898,8 +13888,7 @@ emit_frame_save (rtx frame_reg, rtx frame_ptr, enum machine_mode mode, ...@@ -13898,8 +13888,7 @@ emit_frame_save (rtx frame_reg, rtx frame_ptr, enum machine_mode mode,
reg = gen_rtx_REG (mode, regno); reg = gen_rtx_REG (mode, regno);
addr = gen_rtx_PLUS (Pmode, frame_reg, offset_rtx); addr = gen_rtx_PLUS (Pmode, frame_reg, offset_rtx);
mem = gen_rtx_MEM (mode, addr); mem = gen_frame_mem (mode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
insn = emit_move_insn (mem, reg); insn = emit_move_insn (mem, reg);
...@@ -13925,7 +13914,7 @@ gen_frame_mem_offset (enum machine_mode mode, rtx reg, int offset) ...@@ -13925,7 +13914,7 @@ gen_frame_mem_offset (enum machine_mode mode, rtx reg, int offset)
else else
offset_rtx = int_rtx; offset_rtx = int_rtx;
return gen_rtx_MEM (mode, gen_rtx_PLUS (Pmode, reg, offset_rtx)); return gen_frame_mem (mode, gen_rtx_PLUS (Pmode, reg, offset_rtx));
} }
/* Look for user-defined global regs. We should not save and restore these, /* Look for user-defined global regs. We should not save and restore these,
...@@ -14068,8 +14057,7 @@ rs6000_emit_prologue (void) ...@@ -14068,8 +14057,7 @@ rs6000_emit_prologue (void)
rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
GEN_INT (info->fp_save_offset GEN_INT (info->fp_save_offset
+ sp_offset + 8 * i)); + sp_offset + 8 * i));
rtx mem = gen_rtx_MEM (DFmode, addr); rtx mem = gen_frame_mem (DFmode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, mem, reg); RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, mem, reg);
} }
...@@ -14079,8 +14067,7 @@ rs6000_emit_prologue (void) ...@@ -14079,8 +14067,7 @@ rs6000_emit_prologue (void)
rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
GEN_INT (info->altivec_save_offset GEN_INT (info->altivec_save_offset
+ sp_offset + 16 * i)); + sp_offset + 16 * i));
rtx mem = gen_rtx_MEM (V4SImode, addr); rtx mem = gen_frame_mem (V4SImode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, mem, reg); RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, mem, reg);
} }
...@@ -14090,8 +14077,7 @@ rs6000_emit_prologue (void) ...@@ -14090,8 +14077,7 @@ rs6000_emit_prologue (void)
rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
GEN_INT (info->gp_save_offset GEN_INT (info->gp_save_offset
+ sp_offset + reg_size * i)); + sp_offset + reg_size * i));
rtx mem = gen_rtx_MEM (reg_mode, addr); rtx mem = gen_frame_mem (reg_mode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, mem, reg); RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, mem, reg);
} }
...@@ -14102,8 +14088,7 @@ rs6000_emit_prologue (void) ...@@ -14102,8 +14088,7 @@ rs6000_emit_prologue (void)
rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
GEN_INT (info->cr_save_offset GEN_INT (info->cr_save_offset
+ sp_offset)); + sp_offset));
rtx mem = gen_rtx_MEM (reg_mode, addr); rtx mem = gen_frame_mem (reg_mode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, mem, reg); RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, mem, reg);
} }
...@@ -14154,10 +14139,8 @@ rs6000_emit_prologue (void) ...@@ -14154,10 +14139,8 @@ rs6000_emit_prologue (void)
emit_move_insn (areg, GEN_INT (offset)); emit_move_insn (areg, GEN_INT (offset));
/* AltiVec addressing mode is [reg+reg]. */ /* AltiVec addressing mode is [reg+reg]. */
mem = gen_rtx_MEM (V4SImode, mem = gen_frame_mem (V4SImode,
gen_rtx_PLUS (Pmode, frame_reg_rtx, areg)); gen_rtx_PLUS (Pmode, frame_reg_rtx, areg));
set_mem_alias_set (mem, rs6000_sr_alias_set);
insn = emit_move_insn (mem, savereg); insn = emit_move_insn (mem, savereg);
...@@ -14193,10 +14176,9 @@ rs6000_emit_prologue (void) ...@@ -14193,10 +14176,9 @@ rs6000_emit_prologue (void)
{ {
/* Save VRSAVE. */ /* Save VRSAVE. */
offset = info->vrsave_save_offset + sp_offset; offset = info->vrsave_save_offset + sp_offset;
mem mem = gen_frame_mem (SImode,
= gen_rtx_MEM (SImode, gen_rtx_PLUS (Pmode, frame_reg_rtx,
gen_rtx_PLUS (Pmode, frame_reg_rtx, GEN_INT (offset))); GEN_INT (offset)));
set_mem_alias_set (mem, rs6000_sr_alias_set);
insn = emit_move_insn (mem, reg); insn = emit_move_insn (mem, reg);
} }
...@@ -14272,8 +14254,7 @@ rs6000_emit_prologue (void) ...@@ -14272,8 +14254,7 @@ rs6000_emit_prologue (void)
addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
GEN_INT (info->fp_save_offset GEN_INT (info->fp_save_offset
+ sp_offset + 8*i)); + sp_offset + 8*i));
mem = gen_rtx_MEM (DFmode, addr); mem = gen_frame_mem (DFmode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
RTVEC_ELT (p, i + 2) = gen_rtx_SET (VOIDmode, mem, reg); RTVEC_ELT (p, i + 2) = gen_rtx_SET (VOIDmode, mem, reg);
} }
...@@ -14297,8 +14278,7 @@ rs6000_emit_prologue (void) ...@@ -14297,8 +14278,7 @@ rs6000_emit_prologue (void)
GEN_INT (info->gp_save_offset GEN_INT (info->gp_save_offset
+ sp_offset + sp_offset
+ reg_size * i)); + reg_size * i));
mem = gen_rtx_MEM (reg_mode, addr); mem = gen_frame_mem (reg_mode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
RTVEC_ELT (p, i) = gen_rtx_SET (VOIDmode, mem, reg); RTVEC_ELT (p, i) = gen_rtx_SET (VOIDmode, mem, reg);
} }
...@@ -14336,8 +14316,7 @@ rs6000_emit_prologue (void) ...@@ -14336,8 +14316,7 @@ rs6000_emit_prologue (void)
b = GEN_INT (offset); b = GEN_INT (offset);
addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, b); addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, b);
mem = gen_rtx_MEM (V2SImode, addr); mem = gen_frame_mem (V2SImode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
insn = emit_move_insn (mem, reg); insn = emit_move_insn (mem, reg);
if (GET_CODE (b) == CONST_INT) if (GET_CODE (b) == CONST_INT)
...@@ -14353,8 +14332,7 @@ rs6000_emit_prologue (void) ...@@ -14353,8 +14332,7 @@ rs6000_emit_prologue (void)
GEN_INT (info->gp_save_offset GEN_INT (info->gp_save_offset
+ sp_offset + sp_offset
+ reg_size * i)); + reg_size * i));
mem = gen_rtx_MEM (reg_mode, addr); mem = gen_frame_mem (reg_mode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
insn = emit_move_insn (mem, reg); insn = emit_move_insn (mem, reg);
rs6000_frame_related (insn, frame_ptr_rtx, info->total_size, rs6000_frame_related (insn, frame_ptr_rtx, info->total_size,
...@@ -14377,8 +14355,7 @@ rs6000_emit_prologue (void) ...@@ -14377,8 +14355,7 @@ rs6000_emit_prologue (void)
reg = gen_rtx_REG (reg_mode, 2); reg = gen_rtx_REG (reg_mode, 2);
addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
GEN_INT (sp_offset + 5 * reg_size)); GEN_INT (sp_offset + 5 * reg_size));
mem = gen_rtx_MEM (reg_mode, addr); mem = gen_frame_mem (reg_mode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
insn = emit_move_insn (mem, reg); insn = emit_move_insn (mem, reg);
rs6000_frame_related (insn, frame_ptr_rtx, info->total_size, rs6000_frame_related (insn, frame_ptr_rtx, info->total_size,
...@@ -14406,7 +14383,7 @@ rs6000_emit_prologue (void) ...@@ -14406,7 +14383,7 @@ rs6000_emit_prologue (void)
GEN_INT (info->lr_save_offset + sp_offset)); GEN_INT (info->lr_save_offset + sp_offset));
rtx reg = gen_rtx_REG (Pmode, 0); rtx reg = gen_rtx_REG (Pmode, 0);
rtx mem = gen_rtx_MEM (Pmode, addr); rtx mem = gen_rtx_MEM (Pmode, addr);
/* This should not be of rs6000_sr_alias_set, because of /* This should not be of frame_alias_set, because of
__builtin_return_address. */ __builtin_return_address. */
insn = emit_move_insn (mem, reg); insn = emit_move_insn (mem, reg);
...@@ -14419,12 +14396,10 @@ rs6000_emit_prologue (void) ...@@ -14419,12 +14396,10 @@ rs6000_emit_prologue (void)
{ {
rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
GEN_INT (info->cr_save_offset + sp_offset)); GEN_INT (info->cr_save_offset + sp_offset));
rtx mem = gen_rtx_MEM (SImode, addr); rtx mem = gen_frame_mem (SImode, addr);
/* See the large comment above about why CR2_REGNO is used. */ /* See the large comment above about why CR2_REGNO is used. */
rtx magic_eh_cr_reg = gen_rtx_REG (SImode, CR2_REGNO); rtx magic_eh_cr_reg = gen_rtx_REG (SImode, CR2_REGNO);
set_mem_alias_set (mem, rs6000_sr_alias_set);
/* If r12 was used to hold the original sp, copy cr into r0 now /* If r12 was used to hold the original sp, copy cr into r0 now
that it's free. */ that it's free. */
if (REGNO (frame_reg_rtx) == 12) if (REGNO (frame_reg_rtx) == 12)
...@@ -14667,8 +14642,7 @@ rs6000_emit_epilogue (int sibcall) ...@@ -14667,8 +14642,7 @@ rs6000_emit_epilogue (int sibcall)
rtx reg = gen_rtx_REG (reg_mode, CR2_REGNO); rtx reg = gen_rtx_REG (reg_mode, CR2_REGNO);
rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
GEN_INT (info->cr_save_offset)); GEN_INT (info->cr_save_offset));
rtx mem = gen_rtx_MEM (reg_mode, addr); rtx mem = gen_frame_mem (reg_mode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, reg, mem); RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, reg, mem);
} }
...@@ -14679,8 +14653,7 @@ rs6000_emit_epilogue (int sibcall) ...@@ -14679,8 +14653,7 @@ rs6000_emit_epilogue (int sibcall)
rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
GEN_INT (info->gp_save_offset GEN_INT (info->gp_save_offset
+ reg_size * i)); + reg_size * i));
rtx mem = gen_rtx_MEM (reg_mode, addr); rtx mem = gen_frame_mem (reg_mode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, reg, mem); RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, reg, mem);
} }
...@@ -14690,8 +14663,7 @@ rs6000_emit_epilogue (int sibcall) ...@@ -14690,8 +14663,7 @@ rs6000_emit_epilogue (int sibcall)
rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
GEN_INT (info->altivec_save_offset GEN_INT (info->altivec_save_offset
+ 16 * i)); + 16 * i));
rtx mem = gen_rtx_MEM (V4SImode, addr); rtx mem = gen_frame_mem (V4SImode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, reg, mem); RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, reg, mem);
} }
...@@ -14701,8 +14673,7 @@ rs6000_emit_epilogue (int sibcall) ...@@ -14701,8 +14673,7 @@ rs6000_emit_epilogue (int sibcall)
rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
GEN_INT (info->fp_save_offset GEN_INT (info->fp_save_offset
+ 8 * i)); + 8 * i));
rtx mem = gen_rtx_MEM (DFmode, addr); rtx mem = gen_frame_mem (DFmode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, reg, mem); RTVEC_ELT (p, j++) = gen_rtx_SET (VOIDmode, reg, mem);
} }
...@@ -14768,8 +14739,7 @@ rs6000_emit_epilogue (int sibcall) ...@@ -14768,8 +14739,7 @@ rs6000_emit_epilogue (int sibcall)
/* AltiVec addressing mode is [reg+reg]. */ /* AltiVec addressing mode is [reg+reg]. */
addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, areg); addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, areg);
mem = gen_rtx_MEM (V4SImode, addr); mem = gen_frame_mem (V4SImode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
emit_move_insn (gen_rtx_REG (V4SImode, i), mem); emit_move_insn (gen_rtx_REG (V4SImode, i), mem);
} }
...@@ -14783,8 +14753,7 @@ rs6000_emit_epilogue (int sibcall) ...@@ -14783,8 +14753,7 @@ rs6000_emit_epilogue (int sibcall)
addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
GEN_INT (info->vrsave_save_offset + sp_offset)); GEN_INT (info->vrsave_save_offset + sp_offset));
mem = gen_rtx_MEM (SImode, addr); mem = gen_frame_mem (SImode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
reg = gen_rtx_REG (SImode, 12); reg = gen_rtx_REG (SImode, 12);
emit_move_insn (reg, mem); emit_move_insn (reg, mem);
...@@ -14797,8 +14766,6 @@ rs6000_emit_epilogue (int sibcall) ...@@ -14797,8 +14766,6 @@ rs6000_emit_epilogue (int sibcall)
rtx mem = gen_frame_mem_offset (Pmode, frame_reg_rtx, rtx mem = gen_frame_mem_offset (Pmode, frame_reg_rtx,
info->lr_save_offset + sp_offset); info->lr_save_offset + sp_offset);
set_mem_alias_set (mem, rs6000_sr_alias_set);
emit_move_insn (gen_rtx_REG (Pmode, 0), mem); emit_move_insn (gen_rtx_REG (Pmode, 0), mem);
} }
...@@ -14807,9 +14774,7 @@ rs6000_emit_epilogue (int sibcall) ...@@ -14807,9 +14774,7 @@ rs6000_emit_epilogue (int sibcall)
{ {
rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
GEN_INT (info->cr_save_offset + sp_offset)); GEN_INT (info->cr_save_offset + sp_offset));
rtx mem = gen_rtx_MEM (SImode, addr); rtx mem = gen_frame_mem (SImode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
emit_move_insn (gen_rtx_REG (SImode, 12), mem); emit_move_insn (gen_rtx_REG (SImode, 12), mem);
} }
...@@ -14828,9 +14793,7 @@ rs6000_emit_epilogue (int sibcall) ...@@ -14828,9 +14793,7 @@ rs6000_emit_epilogue (int sibcall)
{ {
rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, rtx addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
GEN_INT (sp_offset + 5 * reg_size)); GEN_INT (sp_offset + 5 * reg_size));
rtx mem = gen_rtx_MEM (reg_mode, addr); rtx mem = gen_frame_mem (reg_mode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
emit_move_insn (gen_rtx_REG (reg_mode, 2), mem); emit_move_insn (gen_rtx_REG (reg_mode, 2), mem);
} }
...@@ -14846,7 +14809,6 @@ rs6000_emit_epilogue (int sibcall) ...@@ -14846,7 +14809,6 @@ rs6000_emit_epilogue (int sibcall)
mem = gen_frame_mem_offset (reg_mode, frame_reg_rtx, mem = gen_frame_mem_offset (reg_mode, frame_reg_rtx,
info->ehrd_offset + sp_offset info->ehrd_offset + sp_offset
+ reg_size * (int) i); + reg_size * (int) i);
set_mem_alias_set (mem, rs6000_sr_alias_set);
emit_move_insn (gen_rtx_REG (reg_mode, regno), mem); emit_move_insn (gen_rtx_REG (reg_mode, regno), mem);
} }
...@@ -14864,9 +14826,7 @@ rs6000_emit_epilogue (int sibcall) ...@@ -14864,9 +14826,7 @@ rs6000_emit_epilogue (int sibcall)
GEN_INT (info->gp_save_offset GEN_INT (info->gp_save_offset
+ sp_offset + sp_offset
+ reg_size * i)); + reg_size * i));
rtx mem = gen_rtx_MEM (reg_mode, addr); rtx mem = gen_frame_mem (reg_mode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
RTVEC_ELT (p, i) = RTVEC_ELT (p, i) =
gen_rtx_SET (VOIDmode, gen_rtx_SET (VOIDmode,
...@@ -14889,7 +14849,7 @@ rs6000_emit_epilogue (int sibcall) ...@@ -14889,7 +14849,7 @@ rs6000_emit_epilogue (int sibcall)
GEN_INT (info->gp_save_offset GEN_INT (info->gp_save_offset
+ sp_offset + sp_offset
+ reg_size * i)); + reg_size * i));
rtx mem = gen_rtx_MEM (reg_mode, addr); rtx mem = gen_frame_mem (reg_mode, addr);
/* Restore 64-bit quantities for SPE. */ /* Restore 64-bit quantities for SPE. */
if (TARGET_SPE_ABI && info->spe_64bit_regs_used != 0) if (TARGET_SPE_ABI && info->spe_64bit_regs_used != 0)
...@@ -14906,11 +14866,9 @@ rs6000_emit_epilogue (int sibcall) ...@@ -14906,11 +14866,9 @@ rs6000_emit_epilogue (int sibcall)
b = GEN_INT (offset); b = GEN_INT (offset);
addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, b); addr = gen_rtx_PLUS (Pmode, frame_reg_rtx, b);
mem = gen_rtx_MEM (V2SImode, addr); mem = gen_frame_mem (V2SImode, addr);
} }
set_mem_alias_set (mem, rs6000_sr_alias_set);
emit_move_insn (gen_rtx_REG (reg_mode, emit_move_insn (gen_rtx_REG (reg_mode,
info->first_gp_reg_save + i), mem); info->first_gp_reg_save + i), mem);
} }
...@@ -14926,8 +14884,7 @@ rs6000_emit_epilogue (int sibcall) ...@@ -14926,8 +14884,7 @@ rs6000_emit_epilogue (int sibcall)
GEN_INT (info->fp_save_offset GEN_INT (info->fp_save_offset
+ sp_offset + sp_offset
+ 8 * i)); + 8 * i));
mem = gen_rtx_MEM (DFmode, addr); mem = gen_frame_mem (DFmode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
emit_move_insn (gen_rtx_REG (DFmode, emit_move_insn (gen_rtx_REG (DFmode,
info->first_fp_reg_save + i), info->first_fp_reg_save + i),
...@@ -15047,8 +15004,7 @@ rs6000_emit_epilogue (int sibcall) ...@@ -15047,8 +15004,7 @@ rs6000_emit_epilogue (int sibcall)
rtx addr, mem; rtx addr, mem;
addr = gen_rtx_PLUS (Pmode, sp_reg_rtx, addr = gen_rtx_PLUS (Pmode, sp_reg_rtx,
GEN_INT (info->fp_save_offset + 8*i)); GEN_INT (info->fp_save_offset + 8*i));
mem = gen_rtx_MEM (DFmode, addr); mem = gen_frame_mem (DFmode, addr);
set_mem_alias_set (mem, rs6000_sr_alias_set);
RTVEC_ELT (p, i+3) = RTVEC_ELT (p, i+3) =
gen_rtx_SET (VOIDmode, gen_rtx_SET (VOIDmode,
......
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