PPCCache: Avoid Global System Accessor

This commit is contained in:
mitaclaw
2024-03-17 20:14:20 -07:00
parent db0cd82326
commit cf74c0d683
12 changed files with 109 additions and 104 deletions

View File

@ -220,7 +220,7 @@ T MMU::ReadFromHardware(u32 em_address)
}
else
{
m_ppc_state.dCache.Read(em_address, &value, sizeof(T),
m_ppc_state.dCache.Read(m_memory, em_address, &value, sizeof(T),
HID0(m_ppc_state).DLOCK || flag != XCheckTLBFlag::Read);
}
@ -239,7 +239,7 @@ T MMU::ReadFromHardware(u32 em_address)
}
else
{
m_ppc_state.dCache.Read(em_address + 0x10000000, &value, sizeof(T),
m_ppc_state.dCache.Read(m_memory, em_address + 0x10000000, &value, sizeof(T),
HID0(m_ppc_state).DLOCK || flag != XCheckTLBFlag::Read);
}
@ -412,7 +412,7 @@ void MMU::WriteToHardware(u32 em_address, const u32 data, const u32 size)
em_address &= m_memory.GetRamMask();
if (m_ppc_state.m_enable_dcache && !wi)
m_ppc_state.dCache.Write(em_address, &swapped_data, size, HID0(m_ppc_state).DLOCK);
m_ppc_state.dCache.Write(m_memory, em_address, &swapped_data, size, HID0(m_ppc_state).DLOCK);
if (!m_ppc_state.m_enable_dcache || wi || flag != XCheckTLBFlag::Write)
std::memcpy(&m_memory.GetRAM()[em_address], &swapped_data, size);
@ -427,7 +427,7 @@ void MMU::WriteToHardware(u32 em_address, const u32 data, const u32 size)
if (m_ppc_state.m_enable_dcache && !wi)
{
m_ppc_state.dCache.Write(em_address + 0x10000000, &swapped_data, size,
m_ppc_state.dCache.Write(m_memory, em_address + 0x10000000, &swapped_data, size,
HID0(m_ppc_state).DLOCK);
}
@ -497,7 +497,7 @@ TryReadInstResult MMU::TryReadInstruction(u32 address)
}
else
{
hex = m_ppc_state.iCache.ReadInstruction(address);
hex = m_ppc_state.iCache.ReadInstruction(m_memory, m_ppc_state, address);
}
return TryReadInstResult{true, from_bat, hex, address};
}
@ -1137,7 +1137,7 @@ void MMU::StoreDCacheLine(u32 address)
}
if (m_ppc_state.m_enable_dcache)
m_ppc_state.dCache.Store(address);
m_ppc_state.dCache.Store(m_memory, address);
}
void MMU::InvalidateDCacheLine(u32 address)
@ -1159,7 +1159,7 @@ void MMU::InvalidateDCacheLine(u32 address)
}
if (m_ppc_state.m_enable_dcache)
m_ppc_state.dCache.Invalidate(address);
m_ppc_state.dCache.Invalidate(m_memory, address);
}
void MMU::FlushDCacheLine(u32 address)
@ -1183,7 +1183,7 @@ void MMU::FlushDCacheLine(u32 address)
}
if (m_ppc_state.m_enable_dcache)
m_ppc_state.dCache.Flush(address);
m_ppc_state.dCache.Flush(m_memory, address);
}
void MMU::TouchDCacheLine(u32 address, bool store)
@ -1207,7 +1207,7 @@ void MMU::TouchDCacheLine(u32 address, bool store)
}
if (m_ppc_state.m_enable_dcache)
m_ppc_state.dCache.Touch(address, store);
m_ppc_state.dCache.Touch(m_memory, address, store);
}
u32 MMU::IsOptimizableMMIOAccess(u32 address, u32 access_size) const