O3 IEW: Make incrWb and decrWb clearer

Move the increment/decrement of wbOutstanding outside of the comparison
in incrWb and decrWb in the IEW. This also fixes a compiler bug with gcc
4.4.7, which incorrectly optimizes "-- ==" as "-=".
This commit is contained in:
Joel Hestness 2013-01-19 15:14:54 -06:00
parent 5b6f972750
commit 1429d21244

View file

@ -213,7 +213,8 @@ class DefaultIEW
void incrWb(InstSeqNum &sn)
{
if (++wbOutstanding == wbMax)
++wbOutstanding;
if (wbOutstanding == wbMax)
ableToIssue = false;
DPRINTF(IEW, "wbOutstanding: %i [sn:%lli]\n", wbOutstanding, sn);
assert(wbOutstanding <= wbMax);
@ -224,8 +225,9 @@ class DefaultIEW
void decrWb(InstSeqNum &sn)
{
if (wbOutstanding-- == wbMax)
if (wbOutstanding == wbMax)
ableToIssue = true;
wbOutstanding--;
DPRINTF(IEW, "wbOutstanding: %i [sn:%lli]\n", wbOutstanding, sn);
assert(wbOutstanding >= 0);
#ifdef DEBUG