Commit 81fe0dbc by Jim Wilson

(expand_units): Fix blockage calculation.

From-SVN: r6575
parent afbc98a5
...@@ -2003,16 +2003,19 @@ expand_units () ...@@ -2003,16 +2003,19 @@ expand_units ()
for (op = unit->ops; op; op = op->next) for (op = unit->ops; op; op = op->next)
{ {
rtx blockage = readycost; rtx blockage = operate_exp (POS_MINUS_OP, readycost,
int delay = op->ready - 1; make_numeric_value (1));
if (unit->simultaneity != 0) if (unit->simultaneity != 0)
delay = MIN (delay, ((unit->simultaneity - 1) {
* unit->issue_delay.min)); rtx filltime = make_numeric_value ((unit->simultaneity - 1)
* unit->issue_delay.min);
blockage = operate_exp (MIN_OP, blockage, filltime);
}
if (delay > 0) blockage = operate_exp (POS_MINUS_OP,
blockage = operate_exp (POS_MINUS_OP, make_numeric_value (op->ready),
make_numeric_value (delay), blockage); blockage);
blockage = operate_exp (MAX_OP, blockage, op->issue_exp); blockage = operate_exp (MAX_OP, blockage, op->issue_exp);
blockage = simplify_knowing (blockage, unit->condexp); blockage = simplify_knowing (blockage, unit->condexp);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment