aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPat Haugen <pthaugen@linux.ibm.com>2021-06-02 15:03:40 -0500
committerPat Haugen <pthaugen@linux.ibm.com>2021-06-02 15:07:28 -0500
commitd2d74c9fc0cf46f66cd02698a52f5e5db109271d (patch)
tree5b58f62846bf6a3da2b51876784f51d515d80adb /gcc
parent63d182b29306e582bfb151cf762820211ea1cc7e (diff)
downloadgcc-d2d74c9fc0cf46f66cd02698a52f5e5db109271d.zip
gcc-d2d74c9fc0cf46f66cd02698a52f5e5db109271d.tar.gz
gcc-d2d74c9fc0cf46f66cd02698a52f5e5db109271d.tar.bz2
Make sure link reg save MEM has frame alias set.
gcc/ChangeLog: * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Use gen_frame_store.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/rs6000/rs6000-logue.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/gcc/config/rs6000/rs6000-logue.c b/gcc/config/rs6000/rs6000-logue.c
index 13c00e7..07337c4 100644
--- a/gcc/config/rs6000/rs6000-logue.c
+++ b/gcc/config/rs6000/rs6000-logue.c
@@ -3257,7 +3257,7 @@ rs6000_emit_prologue (void)
if (!WORLD_SAVE_P (info) && info->lr_save_p
&& !cfun->machine->lr_is_wrapped_separately)
{
- rtx addr, reg, mem;
+ rtx reg;
reg = gen_rtx_REG (Pmode, 0);
START_USE (0);
@@ -3267,13 +3267,8 @@ rs6000_emit_prologue (void)
if (!(strategy & (SAVE_NOINLINE_GPRS_SAVES_LR
| SAVE_NOINLINE_FPRS_SAVES_LR)))
{
- addr = gen_rtx_PLUS (Pmode, frame_reg_rtx,
- GEN_INT (info->lr_save_offset + frame_off));
- mem = gen_rtx_MEM (Pmode, addr);
- /* This should not be of rs6000_sr_alias_set, because of
- __builtin_return_address. */
-
- insn = emit_move_insn (mem, reg);
+ insn = emit_insn (gen_frame_store (reg, frame_reg_rtx,
+ info->lr_save_offset + frame_off));
rs6000_frame_related (insn, frame_reg_rtx, sp_off - frame_off,
NULL_RTX, NULL_RTX);
END_USE (0);