summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/drcbeut.c
Commit message (Collapse)AuthorAgeFilesLines
* Cleanups and version bump.mame0141u1 Aaron Giles2011-01-241-10/+10
|
* Redo most of the DRC/backend support as C++ Aaron Giles2011-01-171-27/+27
| | | | | | | | | | | | | | Yes, it is intentional that the x86/x64 backends compile everywhere. Backends are now derived from drcbe_interface and implement several required overrides. x86emit.h now uses namespaces so that the x86/x64 emitters can co-exist. New file uml.h/uml.c actually describes the UML language, separating out several concepts from drcuml.c. Lots of other changes/fixes.
* Minor comment cleanup. Aaron Giles2011-01-061-14/+41
|
* C++-ified the DRC backend utility helpers. Aaron Giles2011-01-061-424/+309
|
* Convert drccache to C++ Aaron Giles2011-01-051-20/+20
|
* First round of an attempted cleanup of header files in the system. Aaron Giles2010-01-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Created new central header "emu.h"; this should be included by pretty much any driver or device as the first include. This file in turn includes pretty much everything a driver or device will need, minus any other devices it references. Note that emu.h should *never* be included by another header file. - Updated all files in the core (src/emu) to use emu.h. - Removed a ton of redundant and poorly-tracked header includes from within other header files. - Temporarily changed driver.h to map to emu.h until we update files outside of the core. Added class wrapper around tagmap so it can be directly included and accessed within objects that need it. Updated all users to embed tagmap objects and changed them to call through the class. Added nicer functions for finding devices, ports, and regions in a machine: machine->device("tag") -- return the named device, or NULL machine->port("tag") -- return the named port, or NULL machine->region("tag"[, &length[, &flags]]) -- return the named region and optionally its length and flags Made the device tag an astring. This required touching a lot of code that printed the device to explicitly fetch the C-string from it. (Thank you gcc for flagging that issue!)
* Results of running the latest srcclean. Aaron Giles2009-12-281-2/+2
|
* CPU cores now compile cleanly. Aaron Giles2009-03-151-1/+1
|
* Moved some of the CPU cores over to use get_safe_token like other devices. Aaron Giles2009-03-121-11/+11
| | | | Also cleaned them so they compile.
* 01916: srmvs: Assertion Aaron Giles2008-06-221-1/+0
| | | | Removed erroneous assertion.
* Numerous MIPS3 DRC updates: Aaron Giles2008-05-191-6/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fixed front-end so that virtual no-op instructions are still targeted as branch targets. * Fixed front-end to mark the beginning of each sequence as needing TLB validation, since any sequence can be jumped to from anywhere. * Redid the MIPS3 TLB implementation. Fixed the exception vector and type handling. Changed the bitfields to directly map from the MIPS TLB format. Added distinction between TLB fill and TLB valid/modified exceptions. * Added separate modes for user, supervisor, and kernel modes. Each mode does proper verification of addresses now and generates address errors for invalid accesses. * Fixed several bugs in the TLB implementation; not everything works yet but it's a lot closer. * Made COP0 access checking mandatory in non-kernel modes. * Fixed several crashes when recompiling virtual no-ops. * Fixed TLB bug where entries for virtual address 0 were present by default. * Fixed bug in the map variable implementation that would sometimes result in incorrectly recovered values.
* New universal dynamic recompiler system. The central module Aaron Giles2008-05-111-0/+673
is drcuml.c, which defines a universal machine language syntax that can be generated by a frontend recompiler and then retargeted via a generic backend interface to any of a number of different architectures. A disassembler for the UML is also included to allow examination of the generated UML code. Currently supported backend architectures include 32-bit x86, 64-bit x86, and a platform-neutral interpreted C backend that can be used as a fallback for platforms without native support. The C backend also performs additional validation to ensure assumptions are met. Along with the new architecture is a new MIPS III/IV recompiler frontend. This frontend has been rewritten from the old x64-specific recompiler to generate UML opcodes instead. This means that the single recompiler can be used to target multiple backend architectures and should in theory produce identical results across all of them. The old 32-bit and 64-bit MIPS recompilers are now officially retired. The new system provides similar performance (within 5% generally) to the old system and has similar compatibility. The only currently known issues are some problems with the two Gauntlet 3D games.