diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1992-02-05 18:47:31 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1992-02-05 18:47:31 -0500 |
commit | 174486901a530129618626d18cfaff33543b15b0 (patch) | |
tree | 7263b44bdd3b554a6daf2844b0915e964e38b56f /gcc/reorg.c | |
parent | 4291d9c83f1735b78c8e935e0d104a1cba0eaed9 (diff) | |
download | gcc-174486901a530129618626d18cfaff33543b15b0.zip gcc-174486901a530129618626d18cfaff33543b15b0.tar.gz gcc-174486901a530129618626d18cfaff33543b15b0.tar.bz2 |
*** empty log message ***
From-SVN: r280
Diffstat (limited to 'gcc/reorg.c')
-rw-r--r-- | gcc/reorg.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c index cee2b74..ebabfe7 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -2327,7 +2327,13 @@ fill_simple_delay_slots (first, non_jumps_p) next_trial = prev_nonnote_insn (trial); if (eligible_for_delay (insn, slots_filled, trial)) { - delay_list = add_to_delay_list (trial, delay_list); + /* In this case, we are searching backward, so if we + find insns to put on the delay list, we want + to put them at the head, rather than the + tail, of the list. */ + + delay_list = gen_rtx (INSN_LIST, VOIDmode, + trial, delay_list); update_block (trial, trial); delete_insn (trial); if (slots_to_fill == ++slots_filled) @@ -2595,9 +2601,12 @@ fill_simple_delay_slots (first, non_jumps_p) trial = try_split (pat, trial, 1); if (ELIGIBLE_FOR_EPILOGUE_DELAY (trial, slots_filled)) { + /* Here as well we are searching backward, so put the + insns we find on the head of the list. */ + current_function_epilogue_delay_list - = add_to_delay_list (trial, - current_function_epilogue_delay_list); + = gen_rtx (INSN_LIST, VOIDmode, trial, + current_function_epilogue_delay_list); mark_referenced_resources (trial, &end_of_function_needs, 1); update_block (trial, trial); delete_insn (trial); |