]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
rs6000.c (rs6000_emit_epilogue): Use addsi3_carry or adddi3_carry when restoring...
authorAlan Modra <amodra@gmail.com>
Thu, 12 Feb 2015 21:39:36 +0000 (08:09 +1030)
committerAlan Modra <amodra@gcc.gnu.org>
Thu, 12 Feb 2015 21:39:36 +0000 (08:09 +1030)
* config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.

From-SVN: r220665

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index c3ed1cb811f84d23fa03c163c88a341786ee7058..177c2d4d9158672a627990b46f9a1c7b8911d570 100644 (file)
@@ -1,3 +1,8 @@
+2015-02-13  Alan Modra  <amodra@gmail.com>
+
+       * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
+       or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
+
 2015-02-12  David Howells  <dhowells@redhat.com>
 
        * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
index 949c4d22b21cb91d681e61ba1570b531493becb1..4214262e5dce16cc351a23d07497a14284165893 100644 (file)
@@ -24977,7 +24977,12 @@ rs6000_emit_epilogue (int sibcall)
                  rtx offset = GEN_INT (end_save + ptr_off);
 
                  frame_off = -end_save;
-                 emit_insn (gen_add3_insn (frame_reg_rtx, ptr_reg, offset));
+                 if (TARGET_32BIT)
+                   emit_insn (gen_addsi3_carry (frame_reg_rtx,
+                                                ptr_reg, offset));
+                 else
+                   emit_insn (gen_adddi3_carry (frame_reg_rtx,
+                                                ptr_reg, offset));
                }
              else
                {