* dcache.c (dcache_write_line): Fixed bugs where cache line was

not written to target correctly.
This commit is contained in:
J.T. Conklin 2001-04-06 22:43:55 +00:00
parent af471f3cf4
commit c839c4db61
2 changed files with 12 additions and 4 deletions

View File

@ -1,5 +1,8 @@
2001-04-06 J.T. Conklin <jtc@redback.com>
* dcache.c (dcache_write_line): Fixed bugs where cache line was
not written to target correctly.
* gdbserver/low-hppabsd.c (read_inferior_memory): Add explicit
void return value;
* gdbserver/low-nbsd.c: Likewise.

View File

@ -278,20 +278,24 @@ dcache_write_line (DCACHE *dcache, register struct dcache_block *db)
while (reg_len > 0)
{
s = XFORM(memaddr);
do {
while (reg_len > 0) {
if (db->state[s] == ENTRY_DIRTY)
break;
s++;
reg_len--;
} while (reg_len > 0);
memaddr++;
myaddr++;
len--;
}
e = s;
do {
while (reg_len > 0) {
if (db->state[e] != ENTRY_DIRTY)
break;
e++;
reg_len--;
} while (reg_len > 0);
}
dirty_len = e - s;
while (dirty_len > 0)
@ -304,6 +308,7 @@ dcache_write_line (DCACHE *dcache, register struct dcache_block *db)
memset (&db->state[XFORM(memaddr)], ENTRY_OK, res);
memaddr += res;
myaddr += res;
len -= res;
dirty_len -= res;
}
}