summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/i386
Commit message (Collapse)AuthorAgeFilesLines
* cpu/i386: saner fatal error handlingx86_std-exceptions angelosa2024-03-235-6/+7
|
* i386: display cr0 and x87 status registers as before plus more usages for ↵ yz70s2024-01-178-86/+30
| | | | the crx bits constants
* i386: in the cpu state view show the flags of the x87 status words and some ↵ yz70s2024-01-165-8/+104
| | | | | | of CR0 add constants for the bits in the CRx registers and start using them
* i386: don't handle op/addr size prefixes twice in rep cracyc2023-12-121-3/+11
|
* i386: tzcnt fall back to bsf for 386 and 486 too cracyc2023-07-031-0/+1
|
* emu/devcb.h: Eliminated the need to call resolve() on callbacks. (#11333) Vas Crabb2023-06-171-6/+2
| | | | | | | | | | | | 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.
* Clean up several sprintf() deprecation warningss in non-3rdparty code. [R. ↵ arbee2023-06-031-4/+4
| | | | Belmont]
* srcclean in preparation for MAME 0.255 branch Vas Crabb2023-05-281-11/+11
|
* Cleaned up logging across the codebase (GitHub #10183). (#11250) [Ryan Holtz] MooglyGuy2023-05-231-11/+11
| | | | | * Converted various logging patterns to use logmacro.h consistently. * Removed redefinitions of LOG_GENERAL. * Use LOGMASKED in more places.
* cpu/i386: Use logmacro.h granular logging. (#11171) Luigi Thirty2023-04-308-228/+243
|
* dimemory: Add the target address space to translate, wrap the constants Olivier Galibert2023-03-187-74/+74
| | | | divtlb: Wrap the constants
* nforcepc: make required changes to let it boot from floppy disk yz70s2023-03-132-6/+38
| | | | | | | The pci devices shared with the xbox have been updated to support dma on the lpc bus. The athlon processor has been updated to support writes in the as_opcodes space.
* Interrupt callback rationalization AJR2023-03-111-1/+1
| | | | | | | | | | | - Make CPUs pass interrupt return PC as a second argument to standard_irq_callback - Add interrupt return PC to "Stopped at interrupt" message produced by debugger 'gint' command - Add messages to trace logs whenever interrupts are accepted - Attempt to step over interrupt routines for applicable debugger commands - Eliminate standard_irq_callback_member wrapper method - Update many CPU cores to invoke standard_irq_callback at the start of or during interrupt processing, rather than at the end or when the input line changes - Remove IRQ callbacks for some input lines that never cause interrupts - mb88xx, mcs48: Add IRQ callbacks for internal interrupts
* i386: add fxsave and fxstor cracyc2023-02-111-1/+65
|
* i386: emms should trap too cracyc2023-02-061-0/+5
|
* i386: nm fault if ts is set cracyc2023-02-045-1/+81
|
* i386: don't change x87 stack pointer until after memory access in case of a ↵ cracyc2023-02-043-16/+79
| | | | page fault
* softfloat: de-conflict include guards Patrick Mackinlay2023-02-011-2/+2
|
* i386: fix fpu log2 and atan cracyc2023-01-091-22/+9
|
* New working software list items angelosa2022-12-301-1/+1
| | | | | | | | | ------------------------------- ibm5170_cdrom.xml: Actua Soccer (OEM v1.29), Duke Nukem 3D (shareware v1.1), Quake (shareware v1.01), SimCity Classic (v2.0), SimCity 2000, Slam Dunk Typing, Sturmtruppen: Risiken? (Italy) [archive.org] New software list items marked not working ------------------------------------------ ibm5170_cdrom.xml: Beavis and Butthead - Virtual Stupidity, Corel DRAW! 6, Uffizi Virtual Museums [archive.org]
* eminline.h: Additions AJR2022-09-251-4/+2
| | | | | | - Add mul_16x16 inline function to perform a signed 16x16-bit multiplication with 32-bit result. This was moved from cpu/e132xs to unite it with the analogous 32x32 operations. - Add rotl_32, rotr_32, rotl_64 and rotr_64 inline functions to perform 32-bit and 64-bit circular shifts in either direction by the specified number of places, modulo 32 or 64. It is anticipated that these will eventually be replaced by standard functions in C++20's <bit> header, and so they have been given similar signatures and semantics (which are also validity-checked). - Remove LSL, LSR, ROL and ROR macros from cpu/arm and cpu/arm7 to ameliorate unnecessary obfuscation.
* bus/nubus/nubus_image.cpp, cpu/i386/i486ops.hxx: Use swapendian_int32 AJR2022-09-222-10/+8
|
* i8087: fsave resets the fpu cracyc2022-05-261-0/+1
|
* Initial work towards a sis630 based chipset driver (#9635) Angelo Salese2022-05-232-2/+32
| | | | | | | | | | - Add more or less complete implementations of sis630_host, sis950_lpc, sis630_gui, sis5513_ide, sis7001_usb, sis7018_audio, sis900_eth devices; - Removed gamecstl.cpp in favour to the new sis630.cpp driver; - i386.cpp: enable CMOV feature for Pentium III and 4; - i386.cpp: add PSN stub feature for Pentium III; New machines marked as NOT_WORKING ---------------------------------- Shuttle MS-11 [Angelo Salese, archive.org]
* srcclean in preparation for 0.243 Vas Crabb2022-04-241-1/+1
|
* i82371ab.cpp: convert to logmacro, fix log writes angelosa2022-04-151-2/+2
|
* src/devices/cpu: Remove #include "debugger.h" where no longer necessary AJR2022-04-061-1/+0
|
* rastersp.cpp: Added Football Crazy game. (#9383) Paul-Arnold2022-03-304-41/+65
| | | | | | | | | | * machine/53c7xx.cpp: DFE bit is not reset when status register is read. * cpu/i386: Fixed multiple issues with breakpoint emulation. * machine/bacta_datalogger.cpp: Prevent continuous transmission of 0xff. * machine/z80scc.cpp: Fixed incorrect setting of baud rate due to uninitialised variables. New working machines -------------- Football Crazy (Video Quiz) [Paul-Arnold]
* Debugger feature improvements AJR2022-03-271-21/+21
| | | | | | | | - Add 'gbt' and 'gbf' debugger commands to step until a true or false conditional branch has been detected. - Update over 100 of the disassemblers in MAME to output a new STEP_COND flag for all conditional branches. Besides being used for execution of the new 'gbt' and 'gbf' commands, this flag also now helps the debugger 'out' command to properly handle conditional return instructions. - Remove STEP_OVER from many instructions that aren't actually subroutine calls (e.g. DJNZ on Z80). A 'gni' debugger command (go next instruction) has been added to accommodate some of the misuse. - Add instruction flag support to several more disassemblers that lacked them entirely (e.g. st62xx) - Don't pass over delay slots for debugging in ASAP core
* cpu/i386: Changed a couple of disassembler helpers to return std::string. Vas Crabb2022-02-252-12/+10
|
* Addressed some Lua scripting pitfalls. (#9294) Vas Crabb2022-02-123-12/+8
| | | | | | | | | | | | | | | | | | | | | | | | | Addressed pure virtual function call crash on end of emulation session if you haven't explicitly removed all address space taps, memory corruption on end of emulation session if you haven't explicitly removed all address space change notifiers, and symbol being garbage-collected out from under you while you have parsed expressions or other symbol tables that depend on them. Removed the copy constructor for parsed expressions as the underlying C++ copy constructor appears to be broken, and simplified symbol table constructors. Also made symbol table add methods return the new entry to avoid the need for an extra lookup. Fixed breakpoint/watchpoint objects being inappropriately copied into the tables returned by bplist() and wplist(), allowing the enabled property to be modifiable for breakpoint and watchpoint objects in Lua. Fixed drivers and devices causing a new memory pass-through handler to be allocated on each soft reset, and fixed multiple instances of taps being installed in the event the machine is reset before the tap is removed. Added classes for managing broadcast subscriptions, and adapted address spaces to use this for change notifications.
* devices/*: Removed extra semicolons after function bodies in headers. (#9275) 0kmg2022-02-061-3/+3
|
* i386.cpp: when DEBUG_MISSING_OPCODE is defined, log a small backtrace yz70s2021-08-252-4/+16
| | | | | | This way together with the full list of bytes that form the non recognized opcode there are the addresses of the previously executed instructions.
* 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.
* Eliminate ARRAY_LENGTH template in favor of C++17's std::size AJR2021-02-141-1/+1
| | | | | | | | | | * 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
* finally retired the READ8/16/32/64 and WRITE8/16/32/64 macros (nw) Ivan Vangelista2020-06-182-3/+3
|
* emumem: A little more speedup. cache and specific change syntax, and are ↵ Olivier Galibert2020-05-254-37/+43
| | | | | | | | | | | | | | | | 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).
* i386: Future-proofing for upcoming debugger refactoring (nw) AJR2020-05-232-1/+1
|
* Add file missing from e9fe64ecdb7c4da51da9e595de75dfaa1db394a2 (nw) AJR2020-05-021-0/+2
|
* Make expressions octal for applicable address spaces in disassembly view AJR2020-04-132-15/+15
| | | | | | | | | | debug/express.cpp, debugcpu.cpp: General cleanup (nw) - Change default base from hardcoded macro to dynamic parameter for parsed_expression - Change symbol table parameters and variables to references or std::reference_wrapper - Remove the (unused) ability to construct a parsed_expression without a symbol table - Eliminate symbol_table &table and void *memory_param arguments from callbacks (superfluous now that std::function can bind everything necessary) - Eliminate globalref pointer from symbol_table - Add explicitly defaulted move constructor and move assignment operator
* i386/i8087: add alias for fstp st(i) cracyc2020-04-051-0/+1
|
* use C++ library includes (nw) firewave2020-01-221-1/+1
|
* i386: movzx r16 rm16 is an alias for mov cracyc2020-01-181-2/+2
|
* i386: round before checking for exceptions (nw) cracyc2019-12-301-8/+4
|
* i386: oops (nw) cracyc2019-12-301-1/+1
|
* i386: fix over/underflow result and zero div (nw) cracyc2019-12-302-13/+21
|
* Merge branch 'release0217' into mainline-master Vas Crabb2019-12-231-1/+1
|\
| * i386: feni and fdisi are nops on the 387+ (nw) cracyc2019-12-221-0/+2
| |
* | i386: feni and fdisi are nops on the 387+ (nw) cracyc2019-12-211-0/+2
| |
* | i8087: save pointers in env (nw) cracyc2019-12-211-13/+52
|/