// license:BSD-3-Clause // copyright-holders:Olivier Galibert #include "emu.h" #include "emumem_hea.h" #include "emumem_hedp.h" template template std::enable_if_t::value || std::is_same::value || std::is_same::value || std::is_same::value, typename emu::detail::handler_entry_size::uX> handler_entry_read_delegate::read_impl(offs_t offset, uX mem_mask) { return m_delegate(*inh::m_space, ((offset - inh::m_address_base) & inh::m_address_mask) >> (Width + AddrShift), mem_mask); } template template std::enable_if_t::value || std::is_same::value || std::is_same::value || std::is_same::value, typename emu::detail::handler_entry_size::uX> handler_entry_read_delegate::read_impl(offs_t offset, uX mem_mask) { return m_delegate(*inh::m_space, ((offset - inh::m_address_base) & inh::m_address_mask) >> (Width + AddrShift)); } template template std::enable_if_t::value || std::is_same::value || std::is_same::value || std::is_same::value, typename emu::detail::handler_entry_size::uX> handler_entry_read_delegate::read_impl(offs_t offset, uX mem_mask) { return m_delegate(((offset - inh::m_address_base) & inh::m_address_mask) >> (Width + AddrShift), mem_mask); } template template std::enable_if_t::value || std::is_same::value || std::is_same::value || std::is_same::value, typename emu::detail::handler_entry_size::uX> handler_entry_read_delegate::read_impl(offs_t offset, uX mem_mask) { return m_delegate(((offset - inh::m_address_base) & inh::m_address_mask) >> (Width + AddrShift)); } template template std::enable_if_t::value || std::is_same::value || std::is_same::value || std::is_same::value, typename emu::detail::handler_entry_size::uX> handler_entry_read_delegate::read_impl(offs_t offset, uX mem_mask) { return m_delegate(*inh::m_space); } template template std::enable_if_t::value || std::is_same::value || std::is_same::value || std::is_same::value, typename emu::detail::handler_entry_size::uX> handler_entry_read_delegate::read_impl(offs_t offset, uX mem_mask) { return m_delegate(); } template typename emu::detail::handler_entry_size::uX handler_entry_read_delegate::read(offs_t offset, uX mem_mask) { return read_impl(offset, mem_mask); } template std::string handler_entry_read_delegate::name() const { return m_delegate.name(); } template template std::enable_if_t::value || std::is_same::value || std::is_same::value || std::is_same::value, void> handler_entry_write_delegate::write_impl(offs_t offset, uX data, uX mem_mask) { m_delegate(*inh::m_space, ((offset - inh::m_address_base) & inh::m_address_mask) >> (Width + AddrShift), data, mem_mask); } template template std::enable_if_t::value || std::is_same::value || std::is_same::value || std::is_same::value, void> handler_entry_write_delegate::write_impl(offs_t offset, uX data, uX mem_mask) { m_delegate(*inh::m_space, ((offset - inh::m_address_base) & inh::m_address_mask) >> (Width + AddrShift), data); } template template std::enable_if_t::value || std::is_same::value || std::is_same::value || std::is_same::value, void> handler_entry_write_delegate::write_impl(offs_t offset, uX data, uX mem_mask) { m_delegate(((offset - inh::m_address_base) & inh::m_address_mask) >> (Width + AddrShift), data, mem_mask); } template template std::enable_if_t::value || std::is_same::value || std::is_same::value || std::is_same::value, void> handler_entry_write_delegate::write_impl(offs_t offset, uX data, uX mem_mask) { m_delegate(((offset - inh::m_address_base) & inh::m_address_mask) >> (Width + AddrShift), data); } template template std::enable_if_t::value || std::is_same::value || std::is_same::value || std::is_same::value, void> handler_entry_write_delegate::write_impl(offs_t offset, uX data, uX mem_mask) { m_delegate(*inh::m_space, data); } template template std::enable_if_t::value || std::is_same::value || std::is_same::value || std::is_same::value, void> handler_entry_write_delegate::write_impl(offs_t offset, uX data, uX mem_mask) { m_delegate(data); } template void handler_entry_write_delegate::write(offs_t offset, uX data, uX mem_mask) { write_impl(offset, data, mem_mask); } template std::string handler_entry_write_delegate::name() const { return m_delegate.name(); } template typename emu::detail::handler_entry_size::uX handler_entry_read_ioport::read(offs_t offset, uX mem_mask) { return m_port->read(); } template std::string handler_entry_read_ioport::name() const { return m_port->tag(); } template void handler_entry_write_ioport::write(offs_t offset, uX data, uX mem_mask) { m_port->write(data, mem_mask); } template std::string handler_entry_write_ioport::name() const { return m_port->tag(); } template class handler_entry_read_delegate<0, 1, ENDIANNESS_LITTLE, read8_delegate>; template class handler_entry_read_delegate<0, 1, ENDIANNESS_BIG, read8_delegate>; template class handler_entry_read_delegate<0, 0, ENDIANNESS_LITTLE, read8_delegate>; template class handler_entry_read_delegate<0, 0, ENDIANNESS_BIG, read8_delegate>; template class handler_entry_read_delegate<1, 3, ENDIANNESS_LITTLE, read16_delegate>; template class handler_entry_read_delegate<1, 3, ENDIANNESS_BIG, read16_delegate>; template class handler_entry_read_delegate<1, 0, ENDIANNESS_LITTLE, read16_delegate>; template class handler_entry_read_delegate<1, 0, ENDIANNESS_BIG, read16_delegate>; template class handler_entry_read_delegate<1, -1, ENDIANNESS_LITTLE, read16_delegate>; template class handler_entry_read_delegate<1, -1, ENDIANNESS_BIG, read16_delegate>; template class handler_entry_read_delegate<2, 0, ENDIANNESS_LITTLE, read32_delegate>; template class handler_entry_read_delegate<2, 0, ENDIANNESS_BIG, read32_delegate>; template class handler_entry_read_delegate<2, -1, ENDIANNESS_LITTLE, read32_delegate>; template class handler_entry_read_delegate<2, -1, ENDIANNESS_BIG, read32_delegate>; template class handler_entry_read_delegate<2, -2, ENDIANNESS_LITTLE, read32_delegate>; template class handler_entry_read_delegate<2, -2, ENDIANNESS_BIG, read32_delegate>; template class handler_entry_read_delegate<3, 0, ENDIANNESS_LITTLE, read64_delegate>; template class handler_entry_read_delegate<3, 0, ENDIANNESS_BIG, read64_delegate>; template class handler_entry_read_delegate<3, -1, ENDIANNESS_LITTLE, read64_delegate>; template class handler_entry_read_delegate<3, -1, ENDIANNESS_BIG, read64_delegate>; template class handler_entry_read_delegate<3, -2, ENDIANNESS_LITTLE, read64_delegate>; template class handler_entry_read_delegate<3, -2, ENDIANNESS_BIG, read64_delegate>; template class handler_entry_read_delegate<3, -3, ENDIANNESS_LITTLE, read64_delegate>; template class handler_entry_read_delegate<3, -3, ENDIANNESS_BIG, read64_delegate>; template class handler_entry_read_delegate<0, 1, ENDIANNESS_LITTLE, read8m_delegate>; template class handler_entry_read_delegate<0, 1, ENDIANNESS_BIG, read8m_delegate>; template class handler_entry_read_delegate<0, 0, ENDIANNESS_LITTLE, read8m_delegate>; template class handler_entry_read_delegate<0, 0, ENDIANNESS_BIG, read8m_delegate>; template class handler_entry_read_delegate<1, 3, ENDIANNESS_LITTLE, read16m_delegate>; template class handler_entry_read_delegate<1, 3, ENDIANNESS_BIG, read16m_delegate>; template class handler_entry_read_delegate<1, 0, ENDIANNESS_LITTLE, read16m_delegate>; template class handler_entry_read_delegate<1, 0, ENDIANNESS_BIG, read16m_delegate>; template class handler_entry_read_delegate<1, -1, ENDIANNESS_LITTLE, read16m_delegate>; template class handler_entry_read_delegate<1, -1, ENDIANNESS_BIG, read16m_delegate>; template class handler_entry_read_delegate<2, 0, ENDIANNESS_LITTLE, read32m_delegate>; template class handler_entry_read_delegate<2, 0, ENDIANNESS_BIG, read32m_delegate>; template class handler_entry_read_delegate<2, -1, ENDIANNESS_LITTLE, read32m_delegate>; template class handler_entry_read_delegate<2, -1, ENDIANNESS_BIG, read32m_delegate>; template class handler_entry_read_delegate<2, -2, ENDIANNESS_LITTLE, read32m_delegate>; template class handler_entry_read_delegate<2, -2, ENDIANNESS_BIG, read32m_delegate>; template class handler_entry_read_delegate<3, 0, ENDIANNESS_LITTLE, read64m_delegate>; template class handler_entry_read_delegate<3, 0, ENDIANNESS_BIG, read64m_delegate>; template class handler_entry_read_delegate<3, -1, ENDIANNESS_LITTLE, read64m_delegate>; template class handler_entry_read_delegate<3, -1, ENDIANNESS_BIG, read64m_delegate>; template class handler_entry_read_delegate<3, -2, ENDIANNESS_LITTLE, read64m_delegate>; template class handler_entry_read_delegate<3, -2, ENDIANNESS_BIG, read64m_delegate>; template class handler_entry_read_delegate<3, -3, ENDIANNESS_LITTLE, read64m_delegate>; template class handler_entry_read_delegate<3, -3, ENDIANNESS_BIG, read64m_delegate>; template class handler_entry_read_delegate<0, 1, ENDIANNESS_LITTLE, read8s_delegate>; template class handler_entry_read_delegate<0, 1, ENDIANNESS_BIG, read8s_delegate>; template class handler_entry_read_delegate<0, 0, ENDIANNESS_LITTLE, read8s_delegate>; template class handler_entry_read_delegate<0, 0, ENDIANNESS_BIG, read8s_delegate>; template class handler_entry_read_delegate<1, 3, ENDIANNESS_LITTLE, read16s_delegate>; template class handler_entry_read_delegate<1, 3, ENDIANNESS_BIG, read16s_delegate>; template class handler_entry_read_delegate<1, 0, ENDIANNESS_LITTLE, read16s_delegate>; template class handler_entry_read_delegate<1, 0, ENDIANNESS_BIG, read16s_delegate>; template class handler_entry_read_delegate<1, -1, ENDIANNESS_LITTLE, read16s_delegate>; template class handler_entry_read_delegate<1, -1, ENDIANNESS_BIG, read16s_delegate>; template class handler_entry_read_delegate<2, 0, ENDIANNESS_LITTLE, read32s_delegate>; template class handler_entry_read_delegate<2, 0, ENDIANNESS_BIG, read32s_delegate>; template class handler_entry_read_delegate<2, -1, ENDIANNESS_LITTLE, read32s_delegate>; template class handler_entry_read_delegate<2, -1, ENDIANNESS_BIG, read32s_delegate>; template class handler_entry_read_delegate<2, -2, ENDIANNESS_LITTLE, read32s_delegate>; template class handler_entry_read_delegate<2, -2, ENDIANNESS_BIG, read32s_delegate>; template class handler_entry_read_delegate<3, 0, ENDIANNESS_LITTLE, read64s_delegate>; template class handler_entry_read_delegate<3, 0, ENDIANNESS_BIG, read64s_delegate>; template class handler_entry_read_delegate<3, -1, ENDIANNESS_LITTLE, read64s_delegate>; template class handler_entry_read_delegate<3, -1, ENDIANNESS_BIG, read64s_delegate>; template class handler_entry_read_delegate<3, -2, ENDIANNESS_LITTLE, read64s_delegate>; template class handler_entry_read_delegate<3, -2, ENDIANNESS_BIG, read64s_delegate>; template class handler_entry_read_delegate<3, -3, ENDIANNESS_LITTLE, read64s_delegate>; template class handler_entry_read_delegate<3, -3, ENDIANNESS_BIG, read64s_delegate>; template class handler_entry_read_delegate<0, 1, ENDIANNESS_LITTLE, read8sm_delegate>; template class handler_entry_read_delegate<0, 1, ENDIANNESS_BIG, read8sm_delegate>; template class handler_entry_read_delegate<0, 0, ENDIANNESS_LITTLE, read8sm_delegate>; template class handler_entry_read_delegate<0, 0, ENDIANNESS_BIG, read8sm_delegate>; template class handler_entry_read_delegate<1, 3, ENDIANNESS_LITTLE, read16sm_delegate>; template class handler_entry_read_delegate<1, 3, ENDIANNESS_BIG, read16sm_delegate>; template class handler_entry_read_delegate<1, 0, ENDIANNESS_LITTLE, read16sm_delegate>; template class handler_entry_read_delegate<1, 0, ENDIANNESS_BIG, read16sm_delegate>; template class handler_entry_read_delegate<1, -1, ENDIANNESS_LITTLE, read16sm_delegate>; template class handler_entry_read_delegate<1, -1, ENDIANNESS_BIG, read16sm_delegate>; template class handler_entry_read_delegate<2, 0, ENDIANNESS_LITTLE, read32sm_delegate>; template class handler_entry_read_delegate<2, 0, ENDIANNESS_BIG, read32sm_delegate>; template class handler_entry_read_delegate<2, -1, ENDIANNESS_LITTLE, read32sm_delegate>; template class handler_entry_read_delegate<2, -1, ENDIANNESS_BIG, read32sm_delegate>; template class handler_entry_read_delegate<2, -2, ENDIANNESS_LITTLE, read32sm_delegate>; template class handler_entry_read_delegate<2, -2, ENDIANNESS_BIG, read32sm_delegate>; template class handler_entry_read_delegate<3, 0, ENDIANNESS_LITTLE, read64sm_delegate>; template class handler_entry_read_delegate<3, 0, ENDIANNESS_BIG, read64sm_delegate>; template class handler_entry_read_delegate<3, -1, ENDIANNESS_LITTLE, read64sm_delegate>; template class handler_entry_read_delegate<3, -1, ENDIANNESS_BIG, read64sm_delegate>; template class handler_entry_read_delegate<3, -2, ENDIANNESS_LITTLE, read64sm_delegate>; template class handler_entry_read_delegate<3, -2, ENDIANNESS_BIG, read64sm_delegate>; template class handler_entry_read_delegate<3, -3, ENDIANNESS_LITTLE, read64sm_delegate>; template class handler_entry_read_delegate<3, -3, ENDIANNESS_BIG, read64sm_delegate>; template class handler_entry_read_delegate<0, 1, ENDIANNESS_LITTLE, read8mo_delegate>; template class handler_entry_read_delegate<0, 1, ENDIANNESS_BIG, read8mo_delegate>; template class handler_entry_read_delegate<0, 0, ENDIANNESS_LITTLE, read8mo_delegate>; template class handler_entry_read_delegate<0, 0, ENDIANNESS_BIG, read8mo_delegate>; template class handler_entry_read_delegate<1, 3, ENDIANNESS_LITTLE, read16mo_delegate>; template class handler_entry_read_delegate<1, 3, ENDIANNESS_BIG, read16mo_delegate>; template class handler_entry_read_delegate<1, 0, ENDIANNESS_LITTLE, read16mo_delegate>; template class handler_entry_read_delegate<1, 0, ENDIANNESS_BIG, read16mo_delegate>; template class handler_entry_read_delegate<1, -1, ENDIANNESS_LITTLE, read16mo_delegate>; template class handler_entry_read_delegate<1, -1, ENDIANNESS_BIG, read16mo_delegate>; template class handler_entry_read_delegate<2, 0, ENDIANNESS_LITTLE, read32mo_delegate>; template class handler_entry_read_delegate<2, 0, ENDIANNESS_BIG, read32mo_delegate>; template class handler_entry_read_delegate<2, -1, ENDIANNESS_LITTLE, read32mo_delegate>; template class handler_entry_read_delegate<2, -1, ENDIANNESS_BIG, read32mo_delegate>; template class handler_entry_read_delegate<2, -2, ENDIANNESS_LITTLE, read32mo_delegate>; template class handler_entry_read_delegate<2, -2, ENDIANNESS_BIG, read32mo_delegate>; template class handler_entry_read_delegate<3, 0, ENDIANNESS_LITTLE, read64mo_delegate>; template class handler_entry_read_delegate<3, 0, ENDIANNESS_BIG, read64mo_delegate>; template class handler_entry_read_delegate<3, -1, ENDIANNESS_LITTLE, read64mo_delegate>; template class handler_entry_read_delegate<3, -1, ENDIANNESS_BIG, read64mo_delegate>; template class handler_entry_read_delegate<3, -2, ENDIANNESS_LITTLE, read64mo_delegate>; template class handler_entry_read_delegate<3, -2, ENDIANNESS_BIG, read64mo_delegate>; template class handler_entry_read_delegate<3, -3, ENDIANNESS_LITTLE, read64mo_delegate>; template class handler_entry_read_delegate<3, -3, ENDIANNESS_BIG, read64mo_delegate>; template class handler_entry_read_delegate<0, 1, ENDIANNESS_LITTLE, read8smo_delegate>; template class handler_entry_read_delegate<0, 1, ENDIANNESS_BIG, read8smo_delegate>; template class handler_entry_read_delegate<0, 0, ENDIANNESS_LITTLE, read8smo_delegate>; template class handler_entry_read_delegate<0, 0, ENDIANNESS_BIG, read8smo_delegate>; template class handler_entry_read_delegate<1, 3, ENDIANNESS_LITTLE, read16smo_delegate>; template class handler_entry_read_delegate<1, 3, ENDIANNESS_BIG, read16smo_delegate>; template class handler_entry_read_delegate<1, 0, ENDIANNESS_LITTLE, read16smo_delegate>; template class handler_entry_read_delegate<1, 0, ENDIANNESS_BIG, read16smo_delegate>; template class handler_entry_read_delegate<1, -1, ENDIANNESS_LITTLE, read16smo_delegate>; template class handler_entry_read_delegate<1, -1, ENDIANNESS_BIG, read16smo_delegate>; template class handler_entry_read_delegate<2, 0, ENDIANNESS_LITTLE, read32smo_delegate>; template class handler_entry_read_delegate<2, 0, ENDIANNESS_BIG, read32smo_delegate>; template class handler_entry_read_delegate<2, -1, ENDIANNESS_LITTLE, read32smo_delegate>; template class handler_entry_read_delegate<2, -1, ENDIANNESS_BIG, read32smo_delegate>; template class handler_entry_read_delegate<2, -2, ENDIANNESS_LITTLE, read32smo_delegate>; template class handler_entry_read_delegate<2, -2, ENDIANNESS_BIG, read32smo_delegate>; template class handler_entry_read_delegate<3, 0, ENDIANNESS_LITTLE, read64smo_delegate>; template class handler_entry_read_delegate<3, 0, ENDIANNESS_BIG, read64smo_delegate>; template class handler_entry_read_delegate<3, -1, ENDIANNESS_LITTLE, read64smo_delegate>; template class handler_entry_read_delegate<3, -1, ENDIANNESS_BIG, read64smo_delegate>; template class handler_entry_read_delegate<3, -2, ENDIANNESS_LITTLE, read64smo_delegate>; template class handler_entry_read_delegate<3, -2, ENDIANNESS_BIG, read64smo_delegate>; template class handler_entry_read_delegate<3, -3, ENDIANNESS_LITTLE, read64smo_delegate>; template class handler_entry_read_delegate<3, -3, ENDIANNESS_BIG, read64smo_delegate>; template class handler_entry_write_delegate<0, 1, ENDIANNESS_LITTLE, write8_delegate>; template class handler_entry_write_delegate<0, 1, ENDIANNESS_BIG, write8_delegate>; template class handler_entry_write_delegate<0, 0, ENDIANNESS_LITTLE, write8_delegate>; template class handler_entry_write_delegate<0, 0, ENDIANNESS_BIG, write8_delegate>; template class handler_entry_write_delegate<1, 3, ENDIANNESS_LITTLE, write16_delegate>; template class handler_entry_write_delegate<1, 3, ENDIANNESS_BIG, write16_delegate>; template class handler_entry_write_delegate<1, 0, ENDIANNESS_LITTLE, write16_delegate>; template class handler_entry_write_delegate<1, 0, ENDIANNESS_BIG, write16_delegate>; template class handler_entry_write_delegate<1, -1, ENDIANNESS_LITTLE, write16_delegate>; template class handler_entry_write_delegate<1, -1, ENDIANNESS_BIG, write16_delegate>; template class handler_entry_write_delegate<2, 0, ENDIANNESS_LITTLE, write32_delegate>; template class handler_entry_write_delegate<2, 0, ENDIANNESS_BIG, write32_delegate>; template class handler_entry_write_delegate<2, -1, ENDIANNESS_LITTLE, write32_delegate>; template class handler_entry_write_delegate<2, -1, ENDIANNESS_BIG, write32_delegate>; template class handler_entry_write_delegate<2, -2, ENDIANNESS_LITTLE, write32_delegate>; template class handler_entry_write_delegate<2, -2, ENDIANNESS_BIG, write32_delegate>; template class handler_entry_write_delegate<3, 0, ENDIANNESS_LITTLE, write64_delegate>; template class handler_entry_write_delegate<3, 0, ENDIANNESS_BIG, write64_delegate>; template class handler_entry_write_delegate<3, -1, ENDIANNESS_LITTLE, write64_delegate>; template class handler_entry_write_delegate<3, -1, ENDIANNESS_BIG, write64_delegate>; template class handler_entry_write_delegate<3, -2, ENDIANNESS_LITTLE, write64_delegate>; template class handler_entry_write_delegate<3, -2, ENDIANNESS_BIG, write64_delegate>; template class handler_entry_write_delegate<3, -3, ENDIANNESS_LITTLE, write64_delegate>; template class handler_entry_write_delegate<3, -3, ENDIANNESS_BIG, write64_delegate>; template class handler_entry_write_delegate<0, 1, ENDIANNESS_LITTLE, write8m_delegate>; template class handler_entry_write_delegate<0, 1, ENDIANNESS_BIG, write8m_delegate>; template class handler_entry_write_delegate<0, 0, ENDIANNESS_LITTLE, write8m_delegate>; template class handler_entry_write_delegate<0, 0, ENDIANNESS_BIG, write8m_delegate>; template class handler_entry_write_delegate<1, 3, ENDIANNESS_LITTLE, write16m_delegate>; template class handler_entry_write_delegate<1, 3, ENDIANNESS_BIG, write16m_delegate>; template class handler_entry_write_delegate<1, 0, ENDIANNESS_LITTLE, write16m_delegate>; template class handler_entry_write_delegate<1, 0, ENDIANNESS_BIG, write16m_delegate>; template class handler_entry_write_delegate<1, -1, ENDIANNESS_LITTLE, write16m_delegate>; template class handler_entry_write_delegate<1, -1, ENDIANNESS_BIG, write16m_delegate>; template class handler_entry_write_delegate<2, 0, ENDIANNESS_LITTLE, write32m_delegate>; template class handler_entry_write_delegate<2, 0, ENDIANNESS_BIG, write32m_delegate>; template class handler_entry_write_delegate<2, -1, ENDIANNESS_LITTLE, write32m_delegate>; template class handler_entry_write_delegate<2, -1, ENDIANNESS_BIG, write32m_delegate>; template class handler_entry_write_delegate<2, -2, ENDIANNESS_LITTLE, write32m_delegate>; template class handler_entry_write_delegate<2, -2, ENDIANNESS_BIG, write32m_delegate>; template class handler_entry_write_delegate<3, 0, ENDIANNESS_LITTLE, write64m_delegate>; template class handler_entry_write_delegate<3, 0, ENDIANNESS_BIG, write64m_delegate>; template class handler_entry_write_delegate<3, -1, ENDIANNESS_LITTLE, write64m_delegate>; template class handler_entry_write_delegate<3, -1, ENDIANNESS_BIG, write64m_delegate>; template class handler_entry_write_delegate<3, -2, ENDIANNESS_LITTLE, write64m_delegate>; template class handler_entry_write_delegate<3, -2, ENDIANNESS_BIG, write64m_delegate>; template class handler_entry_write_delegate<3, -3, ENDIANNESS_LITTLE, write64m_delegate>; template class handler_entry_write_delegate<3, -3, ENDIANNESS_BIG, write64m_delegate>; template class handler_entry_write_delegate<0, 1, ENDIANNESS_LITTLE, write8s_delegate>; template class handler_entry_write_delegate<0, 1, ENDIANNESS_BIG, write8s_delegate>; template class handler_entry_write_delegate<0, 0, ENDIANNESS_LITTLE, write8s_delegate>; template class handler_entry_write_delegate<0, 0, ENDIANNESS_BIG, write8s_delegate>; template class handler_entry_write_delegate<1, 3, ENDIANNESS_LITTLE, write16s_delegate>; template class handler_entry_write_delegate<1, 3, ENDIANNESS_BIG, write16s_delegate>; template class handler_entry_write_delegate<1, 0, ENDIANNESS_LITTLE, write16s_delegate>; template class handler_entry_write_delegate<1, 0, ENDIANNESS_BIG, write16s_delegate>; template class handler_entry_write_delegate<1, -1, ENDIANNESS_LITTLE, write16s_delegate>; template class handler_entry_write_delegate<1, -1, ENDIANNESS_BIG, write16s_delegate>; template class handler_entry_write_delegate<2, 0, ENDIANNESS_LITTLE, write32s_delegate>; template class handler_entry_write_delegate<2, 0, ENDIANNESS_BIG, write32s_delegate>; template class handler_entry_write_delegate<2, -1, ENDIANNESS_LITTLE, write32s_delegate>; template class handler_entry_write_delegate<2, -1, ENDIANNESS_BIG, write32s_delegate>; template class handler_entry_write_delegate<2, -2, ENDIANNESS_LITTLE, write32s_delegate>; template class handler_entry_write_delegate<2, -2, ENDIANNESS_BIG, write32s_delegate>; template class handler_entry_write_delegate<3, 0, ENDIANNESS_LITTLE, write64s_delegate>; template class handler_entry_write_delegate<3, 0, ENDIANNESS_BIG, write64s_delegate>; template class handler_entry_write_delegate<3, -1, ENDIANNESS_LITTLE, write64s_delegate>; template class handler_entry_write_delegate<3, -1, ENDIANNESS_BIG, write64s_delegate>; template class handler_entry_write_delegate<3, -2, ENDIANNESS_LITTLE, write64s_delegate>; template class handler_entry_write_delegate<3, -2, ENDIANNESS_BIG, write64s_delegate>; template class handler_entry_write_delegate<3, -3, ENDIANNESS_LITTLE, write64s_delegate>; template class handler_entry_write_delegate<3, -3, ENDIANNESS_BIG, write64s_delegate>; template class handler_entry_write_delegate<0, 1, ENDIANNESS_LITTLE, write8sm_delegate>; template class handler_entry_write_delegate<0, 1, ENDIANNESS_BIG, write8sm_delegate>; template class handler_entry_write_delegate<0, 0, ENDIANNESS_LITTLE, write8sm_delegate>; template class handler_entry_write_delegate<0, 0, ENDIANNESS_BIG, write8sm_delegate>; template class handler_entry_write_delegate<1, 3, ENDIANNESS_LITTLE, write16sm_delegate>; template class handler_entry_write_delegate<1, 3, ENDIANNESS_BIG, write16sm_delegate>; template class handler_entry_write_delegate<1, 0, ENDIANNESS_LITTLE, write16sm_delegate>; template class handler_entry_write_delegate<1, 0, ENDIANNESS_BIG, write16sm_delegate>; template class handler_entry_write_delegate<1, -1, ENDIANNESS_LITTLE, write16sm_delegate>; template class handler_entry_write_delegate<1, -1, ENDIANNESS_BIG, write16sm_delegate>; template class handler_entry_write_delegate<2, 0, ENDIANNESS_LITTLE, write32sm_delegate>; template class handler_entry_write_delegate<2, 0, ENDIANNESS_BIG, write32sm_delegate>; template class handler_entry_write_delegate<2, -1, ENDIANNESS_LITTLE, write32sm_delegate>; template class handler_entry_write_delegate<2, -1, ENDIANNESS_BIG, write32sm_delegate>; template class handler_entry_write_delegate<2, -2, ENDIANNESS_LITTLE, write32sm_delegate>; template class handler_entry_write_delegate<2, -2, ENDIANNESS_BIG, write32sm_delegate>; template class handler_entry_write_delegate<3, 0, ENDIANNESS_LITTLE, write64sm_delegate>; template class handler_entry_write_delegate<3, 0, ENDIANNESS_BIG, write64sm_delegate>; template class handler_entry_write_delegate<3, -1, ENDIANNESS_LITTLE, write64sm_delegate>; template class handler_entry_write_delegate<3, -1, ENDIANNESS_BIG, write64sm_delegate>; template class handler_entry_write_delegate<3, -2, ENDIANNESS_LITTLE, write64sm_delegate>; template class handler_entry_write_delegate<3, -2, ENDIANNESS_BIG, write64sm_delegate>; template class handler_entry_write_delegate<3, -3, ENDIANNESS_LITTLE, write64sm_delegate>; template class handler_entry_write_delegate<3, -3, ENDIANNESS_BIG, write64sm_delegate>; template class handler_entry_write_delegate<0, 1, ENDIANNESS_LITTLE, write8mo_delegate>; template class handler_entry_write_delegate<0, 1, ENDIANNESS_BIG, write8mo_delegate>; template class handler_entry_write_delegate<0, 0, ENDIANNESS_LITTLE, write8mo_delegate>; template class handler_entry_write_delegate<0, 0, ENDIANNESS_BIG, write8mo_delegate>; template class handler_entry_write_delegate<1, 3, ENDIANNESS_LITTLE, write16mo_delegate>; template class handler_entry_write_delegate<1, 3, ENDIANNESS_BIG, write16mo_delegate>; template class handler_entry_write_delegate<1, 0, ENDIANNESS_LITTLE, write16mo_delegate>; template class handler_entry_write_delegate<1, 0, ENDIANNESS_BIG, write16mo_delegate>; template class handler_entry_write_delegate<1, -1, ENDIANNESS_LITTLE, write16mo_delegate>; template class handler_entry_write_delegate<1, -1, ENDIANNESS_BIG, write16mo_delegate>; template class handler_entry_write_delegate<2, 0, ENDIANNESS_LITTLE, write32mo_delegate>; template class handler_entry_write_delegate<2, 0, ENDIANNESS_BIG, write32mo_delegate>; template class handler_entry_write_delegate<2, -1, ENDIANNESS_LITTLE, write32mo_delegate>; template class handler_entry_write_delegate<2, -1, ENDIANNESS_BIG, write32mo_delegate>; template class handler_entry_write_delegate<2, -2, ENDIANNESS_LITTLE, write32mo_delegate>; template class handler_entry_write_delegate<2, -2, ENDIANNESS_BIG, write32mo_delegate>; template class handler_entry_write_delegate<3, 0, ENDIANNESS_LITTLE, write64mo_delegate>; template class handler_entry_write_delegate<3, 0, ENDIANNESS_BIG, write64mo_delegate>; template class handler_entry_write_delegate<3, -1, ENDIANNESS_LITTLE, write64mo_delegate>; template class handler_entry_write_delegate<3, -1, ENDIANNESS_BIG, write64mo_delegate>; template class handler_entry_write_delegate<3, -2, ENDIANNESS_LITTLE, write64mo_delegate>; template class handler_entry_write_delegate<3, -2, ENDIANNESS_BIG, write64mo_delegate>; template class handler_entry_write_delegate<3, -3, ENDIANNESS_LITTLE, write64mo_delegate>; template class handler_entry_write_delegate<3, -3, ENDIANNESS_BIG, write64mo_delegate>; template class handler_entry_write_delegate<0, 1, ENDIANNESS_LITTLE, write8smo_delegate>; template class handler_entry_write_delegate<0, 1, ENDIANNESS_BIG, write8smo_delegate>; template class handler_entry_write_delegate<0, 0, ENDIANNESS_LITTLE, write8smo_delegate>; template class handler_entry_write_delegate<0, 0, ENDIANNESS_BIG, write8smo_delegate>; template class handler_entry_write_delegate<1, 3, ENDIANNESS_LITTLE, write16smo_delegate>; template class handler_entry_write_delegate<1, 3, ENDIANNESS_BIG, write16smo_delegate>; template class handler_entry_write_delegate<1, 0, ENDIANNESS_LITTLE, write16smo_delegate>; template class handler_entry_write_delegate<1, 0, ENDIANNESS_BIG, write16smo_delegate>; template class handler_entry_write_delegate<1, -1, ENDIANNESS_LITTLE, write16smo_delegate>; template class handler_entry_write_delegate<1, -1, ENDIANNESS_BIG, write16smo_delegate>; template class handler_entry_write_delegate<2, 0, ENDIANNESS_LITTLE, write32smo_delegate>; template class handler_entry_write_delegate<2, 0, ENDIANNESS_BIG, write32smo_delegate>; template class handler_entry_write_delegate<2, -1, ENDIANNESS_LITTLE, write32smo_delegate>; template class handler_entry_write_delegate<2, -1, ENDIANNESS_BIG, write32smo_delegate>; template class handler_entry_write_delegate<2, -2, ENDIANNESS_LITTLE, write32smo_delegate>; template class handler_entry_write_delegate<2, -2, ENDIANNESS_BIG, write32smo_delegate>; template class handler_entry_write_delegate<3, 0, ENDIANNESS_LITTLE, write64smo_delegate>; template class handler_entry_write_delegate<3, 0, ENDIANNESS_BIG, write64smo_delegate>; template class handler_entry_write_delegate<3, -1, ENDIANNESS_LITTLE, write64smo_delegate>; template class handler_entry_write_delegate<3, -1, ENDIANNESS_BIG, write64smo_delegate>; template class handler_entry_write_delegate<3, -2, ENDIANNESS_LITTLE, write64smo_delegate>; template class handler_entry_write_delegate<3, -2, ENDIANNESS_BIG, write64smo_delegate>; template class handler_entry_write_delegate<3, -3, ENDIANNESS_LITTLE, write64smo_delegate>; template class handler_entry_write_delegate<3, -3, ENDIANNESS_BIG, write64smo_delegate>; template class handler_entry_read_ioport<0, 1, ENDIANNESS_LITTLE>; template class handler_entry_read_ioport<0, 1, ENDIANNESS_BIG>; template class handler_entry_read_ioport<0, 0, ENDIANNESS_LITTLE>; template class handler_entry_read_ioport<0, 0, ENDIANNESS_BIG>; template class handler_entry_read_ioport<1, 3, ENDIANNESS_LITTLE>; template class handler_entry_read_ioport<1, 3, ENDIANNESS_BIG>; template class handler_entry_read_ioport<1, 0, ENDIANNESS_LITTLE>; template class handler_entry_read_ioport<1, 0, ENDIANNESS_BIG>; template class handler_entry_read_ioport<1, -1, ENDIANNESS_LITTLE>; template class handler_entry_read_ioport<1, -1, ENDIANNESS_BIG>; template class handler_entry_read_ioport<2, 0, ENDIANNESS_LITTLE>; template class handler_entry_read_ioport<2, 0, ENDIANNESS_BIG>; template class handler_entry_read_ioport<2, -1, ENDIANNESS_LITTLE>; template class handler_entry_read_ioport<2, -1, ENDIANNESS_BIG>; template class handler_entry_read_ioport<2, -2, ENDIANNESS_LITTLE>; template class handler_entry_read_ioport<2, -2, ENDIANNESS_BIG>; template class handler_entry_read_ioport<3, 0, ENDIANNESS_LITTLE>; template class handler_entry_read_ioport<3, 0, ENDIANNESS_BIG>; template class handler_entry_read_ioport<3, -1, ENDIANNESS_LITTLE>; template class handler_entry_read_ioport<3, -1, ENDIANNESS_BIG>; template class handler_entry_read_ioport<3, -2, ENDIANNESS_LITTLE>; template class handler_entry_read_ioport<3, -2, ENDIANNESS_BIG>; template class handler_entry_read_ioport<3, -3, ENDIANNESS_LITTLE>; template class handler_entry_read_ioport<3, -3, ENDIANNESS_BIG>; template class handler_entry_write_ioport<0, 1, ENDIANNESS_LITTLE>; template class handler_entry_write_ioport<0, 1, ENDIANNESS_BIG>; template class handler_entry_write_ioport<0, 0, ENDIANNESS_LITTLE>; template class handler_entry_write_ioport<0, 0, ENDIANNESS_BIG>; template class handler_entry_write_ioport<1, 3, ENDIANNESS_LITTLE>; template class handler_entry_write_ioport<1, 3, ENDIANNESS_BIG>; template class handler_entry_write_ioport<1, 0, ENDIANNESS_LITTLE>; template class handler_entry_write_ioport<1, 0, ENDIANNESS_BIG>; template class handler_entry_write_ioport<1, -1, ENDIANNESS_LITTLE>; template class handler_entry_write_ioport<1, -1, ENDIANNESS_BIG>; template class handler_entry_write_ioport<2, 0, ENDIANNESS_LITTLE>; template class handler_entry_write_ioport<2, 0, ENDIANNESS_BIG>; template class handler_entry_write_ioport<2, -1, ENDIANNESS_LITTLE>; template class handler_entry_write_ioport<2, -1, ENDIANNESS_BIG>; template class handler_entry_write_ioport<2, -2, ENDIANNESS_LITTLE>; template class handler_entry_write_ioport<2, -2, ENDIANNESS_BIG>; template class handler_entry_write_ioport<3, 0, ENDIANNESS_LITTLE>; template class handler_entry_write_ioport<3, 0, ENDIANNESS_BIG>; template class handler_entry_write_ioport<3, -1, ENDIANNESS_LITTLE>; template class handler_entry_write_ioport<3, -1, ENDIANNESS_BIG>; template class handler_entry_write_ioport<3, -2, ENDIANNESS_LITTLE>; template class handler_entry_write_ioport<3, -2, ENDIANNESS_BIG>; template class handler_entry_write_ioport<3, -3, ENDIANNESS_LITTLE>; template class handler_entry_write_ioport<3, -3, ENDIANNESS_BIG>;