]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Make sure link reg save MEM has frame alias set.
authorPat Haugen <pthaugen@linux.ibm.com>
Wed, 2 Jun 2021 20:03:40 +0000 (15:03 -0500)
committerPat Haugen <pthaugen@linux.ibm.com>
Wed, 2 Jun 2021 20:07:28 +0000 (15:07 -0500)
gcc/ChangeLog:

* config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Use
gen_frame_store.

gcc/config/rs6000/rs6000-logue.c

index 13c00e740d6ac70a427fd7821cd9821e055bb064..07337c4836a3e262b4eee045247f12eaf39458e4 100644 (file)
@@ -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);