From: John David Anglin Date: Sun, 13 Nov 2005 18:06:55 +0000 (+0000) Subject: pa.c (store_reg): Revise generation of frame notes in large frames. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5dcc96058c3aba9e9c7f10cf1648c7b76d080c90;p=gcc.git pa.c (store_reg): Revise generation of frame notes in large frames. * pa.c (store_reg): Revise generation of frame notes in large frames. (set_reg_plus_d): Likewise. From-SVN: r106867 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e56b81af8bd..37cf1ef1f3a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-11-13 John David Anglin + + * pa.c (store_reg): Revise generation of frame notes in large frames. + (set_reg_plus_d): Likewise. + 2005-11-13 Andrew MacLeod PR tree-optimization/24709 diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 6f77f4ffdb3..f79d30a8645 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -3265,20 +3265,18 @@ store_reg (int reg, HOST_WIDE_INT disp, int base) rtx tmpreg = gen_rtx_REG (Pmode, 1); emit_move_insn (tmpreg, delta); - emit_move_insn (tmpreg, gen_rtx_PLUS (Pmode, tmpreg, basereg)); - dest = gen_rtx_MEM (word_mode, tmpreg); - insn = emit_move_insn (dest, src); + insn = emit_move_insn (tmpreg, gen_rtx_PLUS (Pmode, tmpreg, basereg)); if (DO_FRAME_NOTES) { REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR, - gen_rtx_SET (VOIDmode, - gen_rtx_MEM (word_mode, - gen_rtx_PLUS (word_mode, basereg, - delta)), - src), + gen_rtx_SET (VOIDmode, tmpreg, + gen_rtx_PLUS (Pmode, basereg, delta)), REG_NOTES (insn)); + RTX_FRAME_RELATED_P (insn) = 1; } + dest = gen_rtx_MEM (word_mode, tmpreg); + insn = emit_move_insn (dest, src); } else { @@ -3358,6 +3356,12 @@ set_reg_plus_d (int reg, int base, HOST_WIDE_INT disp, int note) emit_move_insn (tmpreg, delta); insn = emit_move_insn (gen_rtx_REG (Pmode, reg), gen_rtx_PLUS (Pmode, tmpreg, basereg)); + if (DO_FRAME_NOTES) + REG_NOTES (insn) + = gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR, + gen_rtx_SET (VOIDmode, tmpreg, + gen_rtx_PLUS (Pmode, basereg, delta)), + REG_NOTES (insn)); } else {