* dcache.c (dcache_write_line): Write dirty lines right.

This commit is contained in:
Steve Chamberlain 1995-08-19 00:54:12 +00:00
parent ca2329727e
commit 69c626a9aa
2 changed files with 20 additions and 16 deletions

View File

@ -1,3 +1,7 @@
Fri Aug 18 17:48:55 1995 steve chamberlain <sac@slash.cygnus.com>
* dcache.c (dcache_write_line): Write dirty lines right.
Fri Aug 18 06:26:56 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) Fri Aug 18 06:26:56 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* sparc-tdep.c (isbranch): Fix typo which caused wrong * sparc-tdep.c (isbranch): Fix typo which caused wrong

View File

@ -230,22 +230,22 @@ dcache_write_line (dcache, db)
int len = 0; int len = 0;
for (e = s ; e < LINE_SIZE; e++, len++) for (e = s ; e < LINE_SIZE; e++, len++)
if (db->state[e] != ENTRY_DIRTY) if (db->state[e] != ENTRY_DIRTY)
{ break;
/* all bytes from s..s+len-1 need to {
be written out */ /* all bytes from s..s+len-1 need to
int done = 0; be written out */
while (done < len) { int done = 0;
int t = dcache->write_memory (db->addr + s + done, while (done < len) {
db->data + s + done, int t = dcache->write_memory (db->addr + s + done,
len - done); db->data + s + done,
if (t == 0) len - done);
return 0; if (t == 0)
done += t; return 0;
} done += t;
memset (db->state + s, ENTRY_OK, len); }
s = e; memset (db->state + s, ENTRY_OK, len);
break; s = e;
} }
} }
} }
db->anydirty = 0; db->anydirty = 0;