diff options
author | Alan Modra <amodra@gmail.com> | 2013-08-20 09:09:05 +0930 |
---|---|---|
committer | Alan Modra <amodra@gcc.gnu.org> | 2013-08-20 09:09:05 +0930 |
commit | af4b4236a4904483218619473b8ca787e59903ca (patch) | |
tree | b85b008a7963778ec85b30b5a0e95e45d9682418 /gcc | |
parent | 0d6332222bd42774b4c8751e10f4bcb64a5e4f22 (diff) | |
download | gcc-af4b4236a4904483218619473b8ca787e59903ca.zip gcc-af4b4236a4904483218619473b8ca787e59903ca.tar.gz gcc-af4b4236a4904483218619473b8ca787e59903ca.tar.bz2 |
re PR target/57865 (Broken _save64gpr and _rest64gpr usage)
PR target/57865
* config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
(rs6000_emit_epilogue): Likewise.
From-SVN: r201860
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1e28906e..3a2d8f4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-08-20 Alan Modra <amodra@gmail.com> + + PR target/57865 + * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust. + (rs6000_emit_epilogue): Likewise. + 2013-08-19 Dehao Chen (dehao@google.com) * value-prof.c (gimple_ic): Fix the bug of adding EH edge. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index b469930..c1acbd8 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -21409,8 +21409,7 @@ rs6000_emit_prologue (void) HOST_WIDE_INT offset; if (!(strategy & SAVE_INLINE_GPRS)) - ool_adjust = 8 * (info->first_gp_reg_save - - (FIRST_SAVRES_REGISTER + 1)); + ool_adjust = 8 * (info->first_gp_reg_save - FIRST_SAVED_GP_REGNO); offset = info->spe_gp_save_offset + frame_off - ool_adjust; spe_save_area_ptr = gen_rtx_REG (Pmode, 11); save_off = frame_off - offset; @@ -22652,8 +22651,7 @@ rs6000_emit_epilogue (int sibcall) anew to every function. */ if (!restoring_GPRs_inline) - ool_adjust = 8 * (info->first_gp_reg_save - - (FIRST_SAVRES_REGISTER + 1)); + ool_adjust = 8 * (info->first_gp_reg_save - FIRST_SAVED_GP_REGNO); frame_reg_rtx = gen_rtx_REG (Pmode, 11); emit_insn (gen_addsi3 (frame_reg_rtx, old_frame_reg_rtx, GEN_INT (info->spe_gp_save_offset |