diff options
Diffstat (limited to 'src/devices/cpu/powerpc')
-rw-r--r-- | src/devices/cpu/powerpc/ppc.h | 2 | ||||
-rw-r--r-- | src/devices/cpu/powerpc/ppccom.cpp | 18 |
2 files changed, 11 insertions, 9 deletions
diff --git a/src/devices/cpu/powerpc/ppc.h b/src/devices/cpu/powerpc/ppc.h index 8714fb570aa..8b935f4e58f 100644 --- a/src/devices/cpu/powerpc/ppc.h +++ b/src/devices/cpu/powerpc/ppc.h @@ -292,6 +292,8 @@ protected: address_space_config m_program_config; address_space *m_program; + memory_access<32, 2, 0, ENDIANNESS_BIG>::cache m_cache32; + memory_access<32, 3, 0, ENDIANNESS_BIG>::cache m_cache64; uint32_t c_bus_frequency; struct internal_ppc_state diff --git a/src/devices/cpu/powerpc/ppccom.cpp b/src/devices/cpu/powerpc/ppccom.cpp index aaf40f8acac..9624afe4c23 100644 --- a/src/devices/cpu/powerpc/ppccom.cpp +++ b/src/devices/cpu/powerpc/ppccom.cpp @@ -722,24 +722,24 @@ void ppc_device::device_start() m_program = &space(AS_PROGRAM); if(m_cap & PPCCAP_4XX) { - auto cache = m_program->cache<2, 0, ENDIANNESS_BIG>(); - m_pr32 = [cache](offs_t address) -> u32 { return cache->read_dword(address); }; - m_prptr = [cache](offs_t address) -> const void * { return cache->read_ptr(address); }; + m_program->cache(m_cache32); + m_pr32 = [this](offs_t address) -> u32 { return m_cache32.read_dword(address); }; + m_prptr = [this](offs_t address) -> const void * { return m_cache32.read_ptr(address); }; } else { - auto cache = m_program->cache<3, 0, ENDIANNESS_BIG>(); - m_pr32 = [cache](offs_t address) -> u32 { return cache->read_dword(address); }; + m_program->cache(m_cache64); + m_pr32 = [this](offs_t address) -> u32 { return m_cache64.read_dword(address); }; if(space_config()->m_endianness != ENDIANNESS_NATIVE) - m_prptr = [cache](offs_t address) -> const void * { - const u32 *ptr = static_cast<u32 *>(cache->read_ptr(address & ~7)); + m_prptr = [this](offs_t address) -> const void * { + const u32 *ptr = static_cast<u32 *>(m_cache64.read_ptr(address & ~7)); if(!(address & 4)) ptr++; return ptr; }; else - m_prptr = [cache](offs_t address) -> const void * { - const u32 *ptr = static_cast<u32 *>(cache->read_ptr(address & ~7)); + m_prptr = [this](offs_t address) -> const void * { + const u32 *ptr = static_cast<u32 *>(m_cache64.read_ptr(address & ~7)); if(address & 4) ptr++; return ptr; |