(emit_reload_insns): For output part of RELOAD_OTHER...
authorRichard Kenner <kenner@gcc.gnu.org>
Mon, 23 Sep 1996 18:22:18 +0000 (14:22 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Mon, 23 Sep 1996 18:22:18 +0000 (14:22 -0400)
(emit_reload_insns): For output part of RELOAD_OTHER, put in front of
anything previous for that output, but not separately.

From-SVN: r12776

gcc/reload1.c

index d18244bf1e460bdda44340ffcbb80a46a2c21ec2..ccc3b9c682fe68f6ef14473de2232e0617995dae 100644 (file)
@@ -5694,7 +5694,6 @@ emit_reload_insns (insn)
   rtx output_address_reload_insns[MAX_RECOG_OPERANDS];
   rtx operand_reload_insns = 0;
   rtx other_operand_reload_insns = 0;
-  rtx other_output_reload_insns = 0;
   rtx following_insn = NEXT_INSN (insn);
   rtx before_insn = insn;
   int special;
@@ -6481,14 +6480,9 @@ emit_reload_insns (insn)
              }
 
          if (reload_when_needed[j] == RELOAD_OTHER)
-           {
-             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 ();
+           emit_insns (output_reload_insns[reload_opnum[j]]);
 
+         output_reload_insns[reload_opnum[j]] = get_insns ();
          end_sequence ();
        }
     }
@@ -6534,8 +6528,6 @@ emit_reload_insns (insn)
       emit_insns_before (output_reload_insns[j], following_insn);
     }
 
-  emit_insns_before (other_output_reload_insns, following_insn);
-
   /* Move death notes from INSN
      to output-operand-address and output reload insns.  */
 #ifdef PRESERVE_DEATH_INFO_REGNO_P