m68k: respect 68020 "freeze I-cache" bit; micro20 68020 cache test now passes [R. Belmont]

This commit is contained in:
arbee 2016-11-26 22:01:01 -05:00
parent f3a89482f2
commit cc979fbbf3

View File

@ -689,9 +689,15 @@ static inline uint32_t m68ki_ic_readimm16(m68000_base_device *m68k, uint32_t add
// do a cache fill if the line is invalid or the tags don't match
if ((!m68k->ic_valid[idx]) || (m68k->ic_address[idx] != tag))
{
// if the cache is frozen, don't update it
if (m68k->cacr & M68K_CACR_FI)
{
return m68k->readimm16(address);
}
uint32_t data = m68k->read32(address & ~3);
// printf("m68k: doing cache fill at %08x (tag %08x idx %d)\n", address, tag, idx);
//printf("m68k: doing cache fill at %08x (tag %08x idx %d)\n", address, tag, idx);
// if no buserror occurred, validate the tag
if (!m68k->mmu_tmp_buserror_occurred)