2003-11-03 Dave Brolley <brolley@redhat.com>

* cache.c (address_interference): Check for higher priority requests
        in the same pipeline.
This commit is contained in:
Dave Brolley 2003-11-03 18:29:57 +00:00
parent 6ef88553ef
commit 0b01870bf4
2 changed files with 17 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2003-11-03 Dave Brolley <brolley@redhat.com>
* cache.c (address_interference): Check for higher priority requests
in the same pipeline.
2003-10-31 Dave Brolley <brolley@redhat.com>
* frv-sim.h (LR_REGNUM): Removed.

View File

@ -1109,14 +1109,23 @@ address_interference (FRV_CACHE *cache, SI address, FRV_CACHE_REQUEST *req,
return 1;
}
/* If this is not a WAR request, then yield to any WAR requests in
either pipeline. */
either pipeline or to a higher priority request in the same pipeline.
*/
if (req->kind != req_WAR)
{
for (j = FIRST_STAGE; j < FRV_CACHE_STAGES; ++j)
{
other_req = cache->pipeline[i].stages[j].request;
if (other_req != NULL && other_req->kind == req_WAR)
return 1;
if (other_req != NULL)
{
if (other_req->kind == req_WAR)
return 1;
if (i == pipe
&& (address == (other_req->address & line_mask)
|| address == all_address)
&& priority > other_req->priority)
return 1;
}
}
}
}