summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/emumem_hedr.ipp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/emumem_hedr.ipp')
-rw-r--r--src/emu/emumem_hedr.ipp54
1 files changed, 27 insertions, 27 deletions
diff --git a/src/emu/emumem_hedr.ipp b/src/emu/emumem_hedr.ipp
index 5af8664932b..460735a2f63 100644
--- a/src/emu/emumem_hedr.ipp
+++ b/src/emu/emumem_hedr.ipp
@@ -183,7 +183,7 @@ template<int HighBits, int Width, int AddrShift, endianness_t Endian> void handl
range_cut_before(ostart-1, start_entry);
range_cut_after(oend+1, end_entry);
- if(LowBits <= Width + AddrShift) {
+ if constexpr(LowBits <= Width + AddrShift) {
if(handler->is_view())
handler->init_handlers(start_entry, end_entry, LowBits, m_u_dispatch, m_u_ranges);
handler->ref(end_entry - start_entry);
@@ -317,7 +317,7 @@ template<int HighBits, int Width, int AddrShift, endianness_t Endian> void handl
range_cut_before(ostart-1, start_entry);
range_cut_after(oend+1, end_entry);
- if(LowBits <= Width + AddrShift) {
+ if constexpr(LowBits <= Width + AddrShift) {
for(offs_t ent = start_entry; ent <= end_entry; ent++) {
u8 rkey1 = rkey;
if(ent != start_entry)
@@ -331,7 +331,7 @@ template<int HighBits, int Width, int AddrShift, endianness_t Endian> void handl
} else if(start_entry == end_entry) {
if(!(start & LOWMASK) && (end & LOWMASK) == LOWMASK) {
if(m_u_dispatch[start_entry]->is_dispatch())
- m_u_dispatch[start_entry]->populate_mismatched_nomirror(start & LOWMASK, end & LOWMASK, ostart, oend, descriptor, rkey, mappings);
+ m_u_dispatch[start_entry]->populate_mismatched_nomirror(0, LOWMASK, ostart, oend, descriptor, rkey, mappings);
else {
mismatched_patch(descriptor, rkey, mappings, m_u_dispatch[start_entry]);
m_u_ranges[start_entry].set(ostart, oend);
@@ -351,19 +351,17 @@ template<int HighBits, int Width, int AddrShift, endianness_t Endian> void handl
rkey &= ~handler_entry::END;
}
- if(start_entry <= end_entry) {
- for(offs_t ent = start_entry; ent <= end_entry; ent++) {
- u8 rkey1 = rkey;
- if(ent != start_entry)
- rkey1 &= ~handler_entry::START;
- if(ent != end_entry)
- rkey1 &= ~handler_entry::END;
- if(m_u_dispatch[ent]->is_dispatch())
- m_u_dispatch[ent]->populate_mismatched_nomirror(start & LOWMASK, end & LOWMASK, ostart, oend, descriptor, rkey1, mappings);
- else {
- mismatched_patch(descriptor, rkey1, mappings, m_u_dispatch[ent]);
- m_u_ranges[ent].set(ostart, oend);
- }
+ for(offs_t ent = start_entry; ent <= end_entry; ent++) {
+ u8 rkey1 = rkey;
+ if(ent != start_entry)
+ rkey1 &= ~handler_entry::START;
+ if(ent != end_entry)
+ rkey1 &= ~handler_entry::END;
+ if(m_u_dispatch[ent]->is_dispatch())
+ m_u_dispatch[ent]->populate_mismatched_nomirror(0, LOWMASK, ostart, oend, descriptor, rkey1, mappings);
+ else {
+ mismatched_patch(descriptor, rkey1, mappings, m_u_dispatch[ent]);
+ m_u_ranges[ent].set(ostart, oend);
}
}
}
@@ -448,7 +446,7 @@ template<int HighBits, int Width, int AddrShift, endianness_t Endian> void handl
range_cut_before(ostart-1, start_entry);
range_cut_after(oend+1, end_entry);
- if(LowBits <= Width + AddrShift) {
+ if constexpr(LowBits <= Width + AddrShift) {
for(offs_t ent = start_entry; ent <= end_entry; ent++) {
passthrough_patch(handler, mappings, m_u_dispatch[ent]);
m_u_ranges[ent].intersect(ostart, oend);
@@ -456,8 +454,12 @@ template<int HighBits, int Width, int AddrShift, endianness_t Endian> void handl
} else if(start_entry == end_entry) {
if(!(start & LOWMASK) && (end & LOWMASK) == LOWMASK) {
- passthrough_patch(handler, mappings, m_u_dispatch[start_entry]);
- m_u_ranges[start_entry].intersect(ostart, oend);
+ if(m_u_dispatch[start_entry]->is_dispatch())
+ m_u_dispatch[start_entry]->populate_passthrough_nomirror(0, LOWMASK, ostart, oend, handler, mappings);
+ else {
+ passthrough_patch(handler, mappings, m_u_dispatch[start_entry]);
+ m_u_ranges[start_entry].intersect(ostart, oend);
+ }
} else
populate_passthrough_nomirror_subdispatch(start_entry, start & LOWMASK, end & LOWMASK, ostart, oend, handler, mappings);
@@ -471,14 +473,12 @@ template<int HighBits, int Width, int AddrShift, endianness_t Endian> void handl
end_entry--;
}
- if(start_entry <= end_entry) {
- for(offs_t ent = start_entry; ent <= end_entry; ent++) {
- if(m_u_dispatch[ent]->is_dispatch())
- m_u_dispatch[ent]->populate_passthrough_nomirror(start & LOWMASK, end & LOWMASK, ostart, oend, handler, mappings);
- else {
- passthrough_patch(handler, mappings, m_u_dispatch[ent]);
- m_u_ranges[ent].intersect(ostart, oend);
- }
+ for(offs_t ent = start_entry; ent <= end_entry; ent++) {
+ if(m_u_dispatch[ent]->is_dispatch())
+ m_u_dispatch[ent]->populate_passthrough_nomirror(0, LOWMASK, ostart, oend, handler, mappings);
+ else {
+ passthrough_patch(handler, mappings, m_u_dispatch[ent]);
+ m_u_ranges[ent].intersect(ostart, oend);
}
}
}