diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1995-11-05 11:23:29 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1995-11-05 11:23:29 -0500 |
commit | 5ca582cfa036ef5fa9f15c34435c0f79b2b556ce (patch) | |
tree | cfc9e99787475eea1c4f9444c2b1b087263e1eca | |
parent | c96d01ab97046e1094188478d9f7585374305c8e (diff) | |
download | gcc-5ca582cfa036ef5fa9f15c34435c0f79b2b556ce.zip gcc-5ca582cfa036ef5fa9f15c34435c0f79b2b556ce.tar.gz gcc-5ca582cfa036ef5fa9f15c34435c0f79b2b556ce.tar.bz2 |
(emit_reload_insns): For RELOAD_OTHER output reloads, output the
reload insns in descending order of reloads.
From-SVN: r10562
-rw-r--r-- | gcc/reload1.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index 9f437b6..33c77e4 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -6290,7 +6290,7 @@ emit_reload_insns (insn) abort (); if (reload_when_needed[j] == RELOAD_OTHER) - push_to_sequence (other_output_reload_insns); + start_sequence (); else push_to_sequence (output_reload_insns[reload_opnum[j]]); @@ -6437,7 +6437,11 @@ emit_reload_insns (insn) } if (reload_when_needed[j] == RELOAD_OTHER) - other_output_reload_insns = get_insns (); + { + if (other_output_reload_insns) + emit_insns (other_output_reload_insns); + other_output_reload_insns = get_insns (); + } else output_reload_insns[reload_opnum[j]] = get_insns (); @@ -6451,7 +6455,7 @@ emit_reload_insns (insn) RELOAD_FOR_OTHER_ADDRESS reloads for input addresses. - RELOAD_OTHER reloads. + RELOAD_OTHER reloads, output in ascending order by reload number. For each operand, any RELOAD_FOR_INPUT_ADDRESS reloads followed by the RELOAD_FOR_INPUT reload for the operand. @@ -6465,7 +6469,8 @@ emit_reload_insns (insn) For each operand, any RELOAD_FOR_OUTPUT_ADDRESS reload followed by the RELOAD_FOR_OUTPUT reload for that operand. - Any RELOAD_OTHER output reloads. */ + Any RELOAD_OTHER output reloads, output in descending order by + reload number. */ emit_insns_before (other_input_address_reload_insns, before_insn); emit_insns_before (other_input_reload_insns, before_insn); |