summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/dspp
Commit message (Collapse)AuthorAgeFilesLines
* Some prep work for extending offs_t to 64 bits. [Vas Crabb, Ryan Holtz] Vas Crabb2026-03-182-30/+30
| | | | | | | | | | | This covers some of stuff highlighted in #14689 where the approach to apply is reasonably obvious and the changes are harmless when offs_t doesn't change size. Most of this is being more strict with offs_t vs uint32_t and switching to type-safe formatting functions. Also renamed gaelco/gaelcof3.cpp to gaelco/futbol3.cpp since the company name is in the project name anyway.
* Allow recompiling CPU cores to define their own opcode descriptions. Vas Crabb2026-03-025-188/+191
| | | | | | | | | | | | | | The base opcode description now only has the parts that are used by the base recompiler front-end. CPU cores are free to define their own extensions as they see fit without being limited to pre-defined fields. The base recompiler front-end is now a template, eliminating the virtual member functions. It no longer has any dependencies on libemu, which paves the way to decoupling the recompiler front-ends and allowing the instruction analysis to be tested without the rest of the emulator. Also added a compile-time option to disable ASTAT flag update elision in the SHARC recompiler, and fixed some recompiler front-end bugs.
* video/pc_vga_chips.cpp: type-in extension register mapping angelosa2026-02-031-1/+1
|
* cpu/dspp/dspp.cpp: preliminary split between regular (Clio) DSPP and M2 Bulldog angelosa2026-02-032-12/+105
|
* cpu/drccache.cpp: Defer allocating to start, allow forcing W^X mode. (#14760) Vas Crabb2026-01-043-67/+77
| | | | | | | | | | | | | | | | | | cpu/drccache.cpp: Added helpers for allocating structures/objects in the cache. cpu/drccache.cpp: Supply desired alignment when allocating cache memory (not fully implemented). cpu/drccache.cpp: Log some statistics on destruction. emu/emuopts.cpp: Added -[no]drc_rwx option to allow forcing W^X mode when writable executable pages are permitted. cpu/mips, cpu/powerpc: Allow DRC cache size to be set externally at configuration time, so systems can override the default. cpu/dspp, cpu/e132xs, cpu/unsp: Don't allocate DRC resources if recompiler is disabled.
* dspp: Tweak mnemonics in disassembler AJR2025-05-071-2/+5
|
* dspp: Add a real disassembler AJR2025-05-073-102/+585
|
* dspp: Various fixes AJR2025-05-072-47/+12
| | | | | | | - Register STATE_GENPCBASE so debugger will recognize CPU - Limit ACC to 20 bits in debugger state display - Use util::sext for sign extension in non-DRC paths. Note that this changes behavior because positive values were sometimes not truncated to 20 bits previously. - Make disassembly slightly less broken, though still very much a stub
* misc cpu: no need to check debug enabled flag manually hap2025-04-112-2/+2
|
* -tools/imgtool/modules: Fixed remaining calss memory access warnings. Vas Crabb2024-11-261-4/+5
| | | | | | | | -tools/imgtool/modules/vzdos.cpp: Fixed function returning floperr_t value as imgtoolerr_t. -devices: Fixed a bunch more #include guards that don't match file paths.
* Added ATTR_COLD to common lifecycle methods for many files in src/devices. ↵ holub2024-09-271-4/+4
| | | | (#12822)
* emu/devcb.h: Eliminated the need to call resolve() on callbacks. (#11333) Vas Crabb2023-06-171-43/+38
| | | | | | | | | | | | Read callbacks now need a default return value supplied at construction. Replaced isnull() with isunset() which tells you if the callback wasn't configured rather than whether it isn't safe to call. Enabled validation of device callbacks (it seems it was disabled at some point, probably accidentally). Device callbacks and object finders now implement the same interface for resolution.
* -Lua engine: run everything in coroutines. (#11019) Vas Crabb2023-03-251-2/+1
| | | | | | | | | * This lets you use emu.wait(...) directly without mucking around creating coroutines. * Allow emu.wait to accept an attotime argument. * Added a couple more wait helper functions. -emu/profiler.h: Actually use scope-based profiling helpers. * This makes the comment at the top of emu/profile.h less dishonest, and makes it easier to write exception-safe code. * Got rid of some do { ... } while (0) loops that only existed so break could be used like a goto.
* src/devices/cpu: Remove #include "debugger.h" where no longer necessary AJR2022-04-062-3/+0
|
* Debugger-related feature removals and cleanup AJR2021-08-151-1/+0
| | | | | | | | - Remove the hotspot read tracker. This was never robustly implemented, but changes to the memory system made it much less useful, and the "speedup opportunities" which it aimed to determine are not very important from a current emulation standpoint. - Remove the CURSP/GENSP state symbol and the generic sp() getter. Stacking semantics vary too much between CPU architectures for this to be of much use. (A "SP" symbol has been added to a few CPU cores whose stack pointers were otherwise not being registered.) - Remove the cached pointer to device_state_interface and the state() fast accessor from device_t. Most users of device_state_interface either already had a pointer to the specific CPU device type or needed to check first for the presence of the interface. - Change the PC memory write tracker to use pcbase(), which works even when the instruction callback is masked out, instead of peeking at the PC history index. - Remove some obsolete watchpoint-related definitions from machine.h.
* Added helpers for 64-bit count leading zeroes/ones. Vas Crabb2021-06-131-1/+1
|
* Eliminate ARRAY_LENGTH template in favor of C++17's std::size AJR2021-02-141-2/+2
| | | | | | | | | | * osdcomm.h: Move definition of EQUIVALENT_ARRAY to coretmpl.h * sharc.cpp, gt64xxx.cpp, ym2413.cpp, gb_lcd.cpp, snes_ppu.cpp: Use STRUCT_MEMBER for save state registration * gio/newport.cpp, megadrive/svp.cpp, nes_ctrl/bcbattle.cpp, arm7.cpp, tms9995.cpp, pckeybrd.cpp, sa1110.cpp, sa1111.cpp, jangou_blitter.cpp, vic4567.cpp: Use std::fill(_n) instead of memset * emucore.h: Remove obsolete typedef
* Fix most implicit fallthrough warnings from clang Vas Crabb2020-11-171-2/+2
|
* -dspp: Fix erroneous fallthroughs. [Ryan Holtz] Ryan Holtz2020-11-141-2/+3
|
* Enable GCC implicit fallthrough warning. Vas Crabb2020-11-152-3/+4
| | | | | | I've guessed whether break or [[fallthrough]] is appropriate. In cases where it looked particularly suspicious, I added a FIXME comment. All of these changes should be reviewed by someone familiar with the code.
* finally retired the READ8/16/32/64 and WRITE8/16/32/64 macros (nw) Ivan Vangelista2020-06-182-36/+36
|
* emumem: A little more speedup. cache and specific change syntax, and are ↵ Olivier Galibert2020-05-253-24/+17
| | | | | | | | | | | | | | | | 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).
* various devices: try the new (and some not so new) save state possibilities (nw) Ivan Vangelista2019-12-091-16/+13
|
* Make many device_execute_interface functions noexcept, including the ↵ AJR2019-11-092-4/+4
| | | | | | | | "information" overrides. This also covers several time-related functions in attotime, running_machine and emu_timer. (nw) m6805: Calculate min_cycles and max_cycles once at device_start time (Nw) attotime: Add as_khz and as_mhz (nw)
* (nw) be strictly POSIX compliant, reduce fragmentation, get rid of an unused ↵ Vas Crabb2019-11-052-7/+7
| | | | member
* (nw) Clean up the mess on master Vas Crabb2019-03-262-176/+176
| | | | | | | | | | | | | 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-252-176/+176
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* srcclean and cleanup (nw) Vas Crabb2019-01-272-176/+176
|
* Removed no longer use MCFG macros in DSPP core, nw mooglyguy2018-12-301-17/+0
|
* Start cleaning up palette configuration: Vas Crabb2018-12-291-2/+3
| | | | | | | | | | * Basically, initialisers go in the constructor arguments, and things for setting format go in set_format. * Initialisation patterns can be specified with an enum discriminator or with a FUNC and optionally a tag. * Formats can be specified with an enum discriminator or a size and function pointer. * You must always supply the number of entries when setting the format. * When initislising with a paletter initialisation member, you can specify the entries and indirecte entries together. * The palette_device now has a standard constructor, so use .set_entries if you are specifying entry count with no format/initialisation. * Also killed an overload on delegates that wasn't being useful.
* -dspp: Preliminary DRC. Still disabled by default. [Ryan Holtz] mooglyguy2018-12-255-819/+999
|
* Split m2_te_device declaration into its own header file, and cleaned up some ↵ mooglyguy2018-12-232-6/+6
| | | | underscore usage in M2-related #defines. Fixes single-driver builds. nw
* srcclean (nw) Vas Crabb2018-12-234-239/+239
|
* Last round of macro removals before the freeze. (nw) mooglyguy2018-12-227-0/+4796
-sound/discrete, okim6295: Removed MCFG macros. [Ryan Holtz] -norautp, osi, audio/mario: Removed MACHINE_CONFIG macros. [Ryan Holtz] -vsmile: Split into its own driver from vii.cpp. [Ryan Holtz] -vii: Fixed broken controller inputs. [Ryan Holtz] -konamim2: Massive update. Most games work, but are still marked non-working due to rare MAME crashes in the PPC DRC. [Phil Bennett, Ryan Holtz]