From 8ae6ac51d45d07b87546a06a376ba5e75e1f4486 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Fri, 13 Feb 2015 08:09:36 +1030 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/config/rs6000/rs6000.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c3ed1cb811f8..177c2d4d9158 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-02-13 Alan Modra + + * 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 * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 949c4d22b21c..4214262e5dce 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 { -- 2.47.2