summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/emumem_het.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Encourage use of read/write delegate creator helpers (demo on Game Boy ↵ Vas Crabb2023-04-111-3/+3
| | | | | cartridges). (#11091) This makes it simpler to install read-write handlers, as you don't need to think about the "smo" suffixes.
* emumem: First try at wait states Olivier Galibert2023-02-221-0/+21
|
* emumem: Add accessors lookup_{read,write]_*_flags to lookup flags without ↵ Olivier Galibert2022-08-041-0/+10
| | | | actually doing the access
* Fun with flags: Allows handlers to have user-defined flags set on Olivier Galibert2021-11-281-0/+22
| | | | | | them, which can them be picked up on access with the {read,write}_*_flags variants of the accessors. Example use with the i960 and its burstable rom/ram.
* emu/emumem*: Removed endianness template parameter from handler_entry_read, ↵ ajrhacker2021-07-091-61/+35
| | | | | handler_entry_write and closely related classes. (#8255) This appears to substantially reduce compilation time and binary size without too much impact on critical paths. The only critical-path parts really touched by this are probably handler_entry_read_units<Width, AddrShift, Endian>::read and handler_entry_write_units<Width, AddrShift, Endian>::write, which no longer need a branch on descriptor endianness for the downcast. The other instances of where the endianness now needs to be fetched from the address space are practically all in constructors, which probably don't get called too often except in drivers where the memory map is regularly rewritten (e.g. segas16b.cpp); even then the performance impact probably isn't huge.
* emumem: more idiomatic way to access members inherited from ↵ Vas Crabb2021-01-041-6/+6
| | | | argument-dependent base templates (may or may not work around GCC11 bug causing #7616)
* TMS340X0 updates AJR2020-08-191-0/+4
| | | | | | | - tms34020: Upgrade data bus to 32 bits and add preliminary masking for 16-bit operations - tms34010, tms34020: Eliminate pure 8-bit read/write bus accesses (these are always read-modify-write, even if aligned) - btoads, midxunit: Use 8-bit handlers for NVRAM, reducing size to 8192 bytes - midwunit, midxunit: Eliminate dependencies on midtunit driver
* emumem: A little more speedup. cache and specific change syntax, and are ↵ Olivier Galibert2020-05-251-6/+6
| | | | | | | | | | | | | | | | not pointers anymore [O. Galibert] The last(?) two changes are: - Add a template parameter to everything (theoretically the address space width, in practice a level derived from it to keep as much compatibility between widths as possible) so that the shift size becomes a constant. - Change the syntax of declaring and initializing the caches and specifics so that they're embedded in the owner device. Solves lifetime issues and also removes one indirection (looking up the base dispatch pointer through the cache/specific pointer).
* Ref count in flight calls when a tap is installed, plus fix for less ↵ smf-2019-10-211-0/+8
| | | | permissive compilers [O. Galibert, smf]
* (nw) Clean up the mess on master Vas Crabb2019-03-261-0/+4
| | | | | | | | | | | | | This effectively reverts b380514764cf857469bae61c11143a19f79a74c5 and c24473ddff715ecec2e258a6eb38960cf8c8e98e, restoring the state at 598cd5227223c3b04ca31f0dbc1981256d9ea3ff. Before pushing, please check that what you're about to push is sane. Check your local commit log and ensure there isn't anything out-of-place before pushing to mainline. When things like this happen, it wastes everyone's time. I really don't need this in a week when real work™ is busting my balls and I'm behind where I want to be with preparing for MAME release.
* Revert "conflict resolution (nw)" andreasnaive2019-03-251-4/+0
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* emumem: Allow an address shift of 1 (to the right) for 8-bit spaces (nw) AJR2019-03-011-0/+4
|
* memory: Allow simplified versions of handlers [O. Galibert] Olivier Galibert2018-08-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | A standard memory handler has as a prototype (where uX = u8, u16, u32 or u64): uX device::read(address_space &space, offs_t offset, uX mem_mask); void device::write(address_space &space, offs_t offset, uX data, uX mem_mask); We now allow simplified versions which are: uX device::read(offs_t offset, uX mem_mask); void device::write(offs_t offset, uX data, uX mem_mask); uX device::read(offs_t offset); void device::write(offs_t offset, uX data); uX device::read(); void device::write(uX data); Use them at will. Also consider (DECLARE_)(READ|WRITE)(8|16|32|64)_MEMBER on the way out, use the explicit prototypes. Same for lambdas in the memory map, the parameters are now optional following the same combinations.
* emumem: Backend modernization [O. Galibert] Olivier Galibert2018-06-291-0/+89