aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2015-02-13 08:09:36 +1030
committerAlan Modra <amodra@gcc.gnu.org>2015-02-13 08:09:36 +1030
commit8ae6ac51d45d07b87546a06a376ba5e75e1f4486 (patch)
tree6458df34723a10d22b30f432d23f8642b50ecf66
parentd6d77e665ba06e719639a04ee8d2176f7e2dcd2a (diff)
downloadgcc-8ae6ac51d45d07b87546a06a376ba5e75e1f4486.zip
gcc-8ae6ac51d45d07b87546a06a376ba5e75e1f4486.tar.gz
gcc-8ae6ac51d45d07b87546a06a376ba5e75e1f4486.tar.bz2
rs6000.c (rs6000_emit_epilogue): Use addsi3_carry or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
* 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
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/rs6000.c7
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c3ed1cb..177c2d4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 949c4d2..4214262 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -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
{