diff options
| author | 2021-06-21 13:53:49 -0700 | |
|---|---|---|
| committer | 2021-06-21 13:53:49 -0700 | |
| commit | 32dbba7d2d4513774b2d877b4c88f2d0760bcf54 (patch) | |
| tree | f9e6426cf8dc28413c456bdbcd450c85cb302422 /src/emu | |
| parent | 5522729235b3ce81c839f3932c1aadc14de59e2b (diff) | |
| parent | 2709c0143a8c7009715242c135b28403eeffce8b (diff) | |
Merge branch 'master' into deprecateddeprecated
Diffstat (limited to 'src/emu')
| -rw-r--r-- | src/emu/emumem_hedr.ipp | 54 | ||||
| -rw-r--r-- | src/emu/emumem_hedw.ipp | 48 | ||||
| -rw-r--r-- | src/emu/emumem_mview.cpp | 2 | ||||
| -rw-r--r-- | src/emu/rendlay.cpp | 4 | ||||
| -rw-r--r-- | src/emu/validity.cpp | 8 |
5 files changed, 57 insertions, 59 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); } } } diff --git a/src/emu/emumem_hedw.ipp b/src/emu/emumem_hedw.ipp index 1c0a791c569..43ba5768b55 100644 --- a/src/emu/emumem_hedw.ipp +++ b/src/emu/emumem_hedw.ipp @@ -185,7 +185,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); @@ -319,7 +319,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) @@ -333,7 +333,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].intersect(ostart, oend); @@ -353,19 +353,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].intersect(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].intersect(ostart, oend); } } } @@ -450,7 +448,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); @@ -459,7 +457,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_passthrough_nomirror(start & LOWMASK, end & LOWMASK, ostart, oend, handler, mappings); + 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); @@ -477,14 +475,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); } } } diff --git a/src/emu/emumem_mview.cpp b/src/emu/emumem_mview.cpp index d6750ad2e23..f132809615a 100644 --- a/src/emu/emumem_mview.cpp +++ b/src/emu/emumem_mview.cpp @@ -788,7 +788,7 @@ std::pair<handler_entry *, handler_entry *> memory_view::make_handlers(address_s m_space = &space; offs_t span = addrstart ^ addrend; - u32 awidth = 32 - count_leading_zeros(span); + u32 awidth = 32 - count_leading_zeros_32(span); h_make(awidth, m_config->data_width(), m_config->addr_shift(), m_config->endianness(), space, *this, m_handler_read, m_handler_write); m_handler_read->ref(); diff --git a/src/emu/rendlay.cpp b/src/emu/rendlay.cpp index 789c7c15a7c..00322df4203 100644 --- a/src/emu/rendlay.cpp +++ b/src/emu/rendlay.cpp @@ -530,6 +530,7 @@ private: // variable found if (start == 0) m_buffer.seekp(0); + assert(start < str.length()); m_buffer.write(&str[start], pos - start); m_buffer.write(text.first.data(), text.first.length()); start = term - str.begin() + 1; @@ -550,7 +551,8 @@ private: } else { - m_buffer.write(&str[start], str.length() - start); + if (start < str.length()) + m_buffer.write(&str[start], str.length() - start); return util::buf_to_string_view(m_buffer); } } diff --git a/src/emu/validity.cpp b/src/emu/validity.cpp index ba928a5acfa..de5321f5347 100644 --- a/src/emu/validity.cpp +++ b/src/emu/validity.cpp @@ -519,14 +519,14 @@ void validity_checker::validate_inlines() for (int i = 0; i <= 32; i++) { u32 t = i < 32 ? (1 << (31 - i) | testu32a >> i) : 0; - u8 resultu8 = count_leading_zeros(t); + u8 resultu8 = count_leading_zeros_32(t); if (resultu8 != i) - osd_printf_error("Error testing count_leading_zeros %08x=%02x (expected %02x)\n", t, resultu8, i); + osd_printf_error("Error testing count_leading_zeros_32 %08x=%02x (expected %02x)\n", t, resultu8, i); t ^= 0xffffffff; - resultu8 = count_leading_ones(t); + resultu8 = count_leading_ones_32(t); if (resultu8 != i) - osd_printf_error("Error testing count_leading_ones %08x=%02x (expected %02x)\n", t, resultu8, i); + osd_printf_error("Error testing count_leading_ones_32 %08x=%02x (expected %02x)\n", t, resultu8, i); } } |
