diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1994-02-16 12:39:39 -0800 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1994-02-16 12:39:39 -0800 |
commit | 81fe0dbc99a48b3e8efa5c3ed972514961e32705 (patch) | |
tree | 88883ffdf8d9e57437220bdf8e76ba3a3013185e | |
parent | afbc98a500847c32c305d9736730ce2c38b181a7 (diff) | |
download | gcc-81fe0dbc99a48b3e8efa5c3ed972514961e32705.zip gcc-81fe0dbc99a48b3e8efa5c3ed972514961e32705.tar.gz gcc-81fe0dbc99a48b3e8efa5c3ed972514961e32705.tar.bz2 |
(expand_units): Fix blockage calculation.
From-SVN: r6575
-rw-r--r-- | gcc/genattrtab.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c index 55ec225..851d23b 100644 --- a/gcc/genattrtab.c +++ b/gcc/genattrtab.c @@ -2003,16 +2003,19 @@ expand_units () for (op = unit->ops; op; op = op->next) { - rtx blockage = readycost; - int delay = op->ready - 1; + rtx blockage = operate_exp (POS_MINUS_OP, readycost, + make_numeric_value (1)); 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, - make_numeric_value (delay), blockage); + blockage = operate_exp (POS_MINUS_OP, + make_numeric_value (op->ready), + blockage); blockage = operate_exp (MAX_OP, blockage, op->issue_exp); blockage = simplify_knowing (blockage, unit->condexp); |