From 8819eb78eeeb80a427d74583cec5a8615aceb855 Mon Sep 17 00:00:00 2001 From: Anatoly Sokolov Date: Fri, 5 Oct 2007 01:18:12 +0400 Subject: [PATCH] * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P. From-SVN: r129023 --- gcc/ChangeLog | 4 +++ gcc/config/avr/avr.c | 68 ++++++++++++++++---------------------------- 2 files changed, 28 insertions(+), 44 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eef16c56a44..94ac51b7ae8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2007-10-04 Anatoly Sokolov + + * config/avr/avr.c (expand_epilogue): Don't set RTX_FRAME_RELATED_P. + 2007-10-04 Richard Guenther PR middle-end/33641 diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index 67c11c00e2c..8e3de6a3597 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -787,13 +787,11 @@ expand_epilogue (void) int live_seq; int minimize; HOST_WIDE_INT size = get_frame_size(); - rtx insn; /* epilogue: naked */ if (cfun->machine->is_naked) { - insn = emit_jump_insn (gen_return ()); - RTX_FRAME_RELATED_P (insn) = 1; + emit_jump_insn (gen_return ()); return; } @@ -806,29 +804,23 @@ expand_epilogue (void) { /* Return value from main() is already in the correct registers (r25:r24) as the exit() argument. */ - insn = emit_jump_insn (gen_return ()); - RTX_FRAME_RELATED_P (insn) = 1; + emit_jump_insn (gen_return ()); } else if (minimize && (frame_pointer_needed || live_seq > 4)) { if (frame_pointer_needed) { /* Get rid of frame. */ - insn = - emit_move_insn(frame_pointer_rtx, - gen_rtx_PLUS (HImode, frame_pointer_rtx, - gen_int_mode (size, HImode))); - RTX_FRAME_RELATED_P (insn) = 1; + emit_move_insn(frame_pointer_rtx, + gen_rtx_PLUS (HImode, frame_pointer_rtx, + gen_int_mode (size, HImode))); } else { - insn = emit_move_insn (frame_pointer_rtx, stack_pointer_rtx); - RTX_FRAME_RELATED_P (insn) = 1; + emit_move_insn (frame_pointer_rtx, stack_pointer_rtx); } - insn = - emit_insn (gen_epilogue_restores (gen_int_mode (live_seq, HImode))); - RTX_FRAME_RELATED_P (insn) = 1; + emit_insn (gen_epilogue_restores (gen_int_mode (live_seq, HImode))); } else { @@ -842,7 +834,7 @@ expand_epilogue (void) fp_plus_length = get_attr_length (gen_move_insn (frame_pointer_rtx, gen_rtx_PLUS (HImode, frame_pointer_rtx, - gen_int_mode (size, + gen_int_mode (size, HImode)))); /* Copy to stack pointer. */ fp_plus_length += @@ -855,32 +847,28 @@ expand_epilogue (void) sp_plus_length = get_attr_length (gen_move_insn (stack_pointer_rtx, gen_rtx_PLUS (HImode, stack_pointer_rtx, - gen_int_mode (size, + gen_int_mode (size, HImode)))); } /* Use shortest method. */ if (size <= 5 && (sp_plus_length < fp_plus_length)) { - insn = emit_move_insn (stack_pointer_rtx, - gen_rtx_PLUS (HImode, stack_pointer_rtx, - gen_int_mode (size, HImode))); - RTX_FRAME_RELATED_P (insn) = 1; + emit_move_insn (stack_pointer_rtx, + gen_rtx_PLUS (HImode, stack_pointer_rtx, + gen_int_mode (size, HImode))); } else { - insn = emit_move_insn (frame_pointer_rtx, - gen_rtx_PLUS (HImode, frame_pointer_rtx, - gen_int_mode (size, HImode))); - RTX_FRAME_RELATED_P (insn) = 1; + emit_move_insn (frame_pointer_rtx, + gen_rtx_PLUS (HImode, frame_pointer_rtx, + gen_int_mode (size, HImode))); /* Copy to stack pointer. */ - insn = emit_move_insn (stack_pointer_rtx, frame_pointer_rtx); - RTX_FRAME_RELATED_P (insn) = 1; + emit_move_insn (stack_pointer_rtx, frame_pointer_rtx); } } /* Restore previous frame_pointer. */ - insn = emit_insn (gen_pophi (frame_pointer_rtx)); - RTX_FRAME_RELATED_P (insn) = 1; + emit_insn (gen_pophi (frame_pointer_rtx)); } /* Restore used registers. */ HARD_REG_SET set; @@ -888,33 +876,25 @@ expand_epilogue (void) for (reg = 31; reg >= 0; --reg) { if (TEST_HARD_REG_BIT (set, reg)) - { - insn = emit_insn (gen_popqi (gen_rtx_REG (QImode, reg))); - RTX_FRAME_RELATED_P (insn) = 1; - } + emit_insn (gen_popqi (gen_rtx_REG (QImode, reg))); } if (cfun->machine->is_interrupt || cfun->machine->is_signal) { /* Restore SREG using tmp reg as scratch. */ - insn = emit_insn (gen_popqi (tmp_reg_rtx)); - RTX_FRAME_RELATED_P (insn) = 1; + emit_insn (gen_popqi (tmp_reg_rtx)); - insn = emit_move_insn (gen_rtx_MEM(QImode, GEN_INT(SREG_ADDR)), - tmp_reg_rtx); - RTX_FRAME_RELATED_P (insn) = 1; + emit_move_insn (gen_rtx_MEM(QImode, GEN_INT(SREG_ADDR)), + tmp_reg_rtx); /* Restore tmp REG. */ - insn = emit_insn (gen_popqi (tmp_reg_rtx)); - RTX_FRAME_RELATED_P (insn) = 1; + emit_insn (gen_popqi (tmp_reg_rtx)); /* Restore zero REG. */ - insn = emit_insn (gen_popqi (zero_reg_rtx)); - RTX_FRAME_RELATED_P (insn) = 1; + emit_insn (gen_popqi (zero_reg_rtx)); } - insn = emit_jump_insn (gen_return ()); - RTX_FRAME_RELATED_P (insn) = 1; + emit_jump_insn (gen_return ()); } }