ia64.c (nop_cycles_until): Do init_insn_group_barriers if we emitted a stop bit.

* config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
        if we emitted a stop bit.

From-SVN: r50065
This commit is contained in:
Richard Henderson 2002-02-26 14:41:48 -08:00 committed by Richard Henderson
parent 9e944a165d
commit e013f3c710
2 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2002-02-26 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
if we emitted a stop bit.
2002-02-26 Jakub Jelinek <jakub@redhat.com>
* configure.in (libgcc_visibility): Substitute.

View File

@ -6090,12 +6090,14 @@ nop_cycles_until (clock_var, dump)
{
int prev_clock = prev_cycle;
int cycles_left = clock_var - prev_clock;
bool did_stop = false;
/* Finish the previous cycle; pad it out with NOPs. */
if (sched_data.cur == 3)
{
rtx t = gen_insn_group_barrier (GEN_INT (3));
last_issued = emit_insn_after (t, last_issued);
did_stop = true;
maybe_rotate (dump);
}
else if (sched_data.cur > 0)
@ -6148,6 +6150,7 @@ nop_cycles_until (clock_var, dump)
{
rtx t = gen_insn_group_barrier (GEN_INT (3));
last_issued = emit_insn_after (t, last_issued);
did_stop = true;
}
maybe_rotate (dump);
}
@ -6171,8 +6174,12 @@ nop_cycles_until (clock_var, dump)
last_issued = emit_insn_after (t, last_issued);
t = gen_insn_group_barrier (GEN_INT (3));
last_issued = emit_insn_after (t, last_issued);
did_stop = true;
cycles_left--;
}
if (did_stop)
init_insn_group_barriers ();
}
/* We are about to being issuing insns for this clock cycle.