summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/emumem_hedr.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/emumem_hedr.h')
-rw-r--r--src/emu/emumem_hedr.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/emu/emumem_hedr.h b/src/emu/emumem_hedr.h
index 90dfab6d130..30e819bd990 100644
--- a/src/emu/emumem_hedr.h
+++ b/src/emu/emumem_hedr.h
@@ -5,7 +5,7 @@
// dispatches an access among multiple handlers indexed on part of the address
-template<int HighBits, int Width, int AddrShift, int Endian> class handler_entry_read_dispatch : public handler_entry_read<Width, AddrShift, Endian>
+template<int HighBits, int Width, int AddrShift, endianness_t Endian> class handler_entry_read_dispatch : public handler_entry_read<Width, AddrShift, Endian>
{
public:
using uX = typename emu::detail::handler_entry_size<Width>::uX;
@@ -15,7 +15,7 @@ public:
handler_entry_read_dispatch(address_space *space, const handler_entry::range &init, handler_entry_read<Width, AddrShift, Endian> *handler);
~handler_entry_read_dispatch();
- uX read(offs_t offset, uX mem_mask) override;
+ uX read(offs_t offset, uX mem_mask) const override;
void *get_ptr(offs_t offset) const override;
void lookup(offs_t address, offs_t &start, offs_t &end, handler_entry_read<Width, AddrShift, Endian> *&handler) const override;
@@ -35,9 +35,10 @@ public:
void enumerate_references(handler_entry::reflist &refs) const override;
- virtual void get_dispatch(handler_entry_read<Width, AddrShift, Endian> *const *&dispatch, u8 &shift) const override;
+ virtual const handler_entry_read<Width, AddrShift, Endian> *const *get_dispatch() const override;
protected:
+ static constexpr int Level = emu::detail::handler_entry_dispatch_level(HighBits);
static constexpr u32 LowBits = emu::detail::handler_entry_dispatch_lowbits(HighBits, Width, AddrShift);
static constexpr u32 BITCOUNT = HighBits > LowBits ? HighBits - LowBits : 0;
static constexpr u32 COUNT = 1 << BITCOUNT;