From 564fa462ba1780ac89a909772a440c0ff2ad42be Mon Sep 17 00:00:00 2001 From: Patrick Mackinlay Date: Fri, 24 Mar 2023 14:08:42 +0700 Subject: mc88200: invalidate colliding block address translation cache entries --- src/devices/machine/mc88200.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/devices/machine/mc88200.cpp b/src/devices/machine/mc88200.cpp index ea32fc4f5f8..c9d5983eeb6 100644 --- a/src/devices/machine/mc88200.cpp +++ b/src/devices/machine/mc88200.cpp @@ -374,6 +374,18 @@ void mc88200_device::bwp_w(offs_t offset, u32 data) { LOG("bwp_w %x,0x%08x (%s)\n", offset, data, machine().describe_context()); + if (data & BATC_V) + { + for (unsigned i = 0; i < std::size(m_batc); i++) + { + if ((i != offset) && (m_batc[i] & BATC_V) && BIT(m_batc[i], 19, 13) == BIT(data, 19, 13)) + { + logerror("duplicate batc entry 0x%08x invalidated (%s)\n", data, machine().describe_context()); + data &= ~BATC_V; + } + } + } + m_batc[offset] = data; } -- cgit v1.2.3