| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
* Removed unnecessary preprocessor line continuations from C++ code.
* Use parentheses to avoid need for line continuations in expressions in Python code.
* Removed line continuations at the end of lists in makefiles.
* cpu/m68000: Regenerated C++ source files.
|
| |
|
|
| |
makefile. (#12028)
|
| |
|
|
|
|
| |
- move code to more appropriate locations
- apply clang-format to modified files
- fixed some cspell errors
- Applied emu.h rule.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* netlist: fix bug, prepare for future changes and improve readability
- fix a bug where a net processing error may trigger a nullptr access
- applied some clang-tidy recommendations
- add no_return to plib::terminate
- properly encapsulate dynamic_cast usage
- more review of noexcept
- added a clang-format file. Over time, all source files will be
processed with clang-format
- Used clang format on a number of files
- Rewrote 74174
- all device constructors now use a struct to pass data on
to base classes. Neither netlist state nor the name are intended
to be used in a constructor. After the base class was
constructed, they can be accessed by state() and name().
- The device construction macros can now be removed. Changes to
the core will not need to be reflected in constructors.
- Change truth table macros so that going forward NETLIST_END and
TRUTH_TABLE_END can be replaced by a closing curly brace. netlists can
than use curly braces enclosed blocks.
- more clang-format
- removed some macros completely
- all derived classes from base_device_t now don't use macros
any longer.
- as a result, delegator_t was removed. This class was only used
to support macros :-(
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* netlist: fix bugs and more cpp instead of macros
- C-style comments converted to c++
- Fix crash in state saving code when an abort queue processing event
is pending.
- Fix a bug where a net could be twice in the queue.
- Convert more macros to c++
- fixed SUBTARGET=nl build
- fixed potential bugs which would allow a terminal to belong to more
than one net. This is not possible even for a short time.
- moved some member function definitions out-of-class.
- moved code out-of-class
- added constexpr where appropriate
- fixed mamenl build
- Cleanup and indentation
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
- nltool: Added support for building individual static solver files.
- Added pre-built documentation files for nltool and nlwav.
- plib: Extended typed_version to have patchlevel as well.
- plib: Compile more of ppmf.h with nvcc.
- create_devinc.py: Add include guards to the generated files.
- makefile: Recreate generated files when python code has changed.
- Reduced nld_base.h usage in the core.
- <oved extern template class declarations to where they belong.
- Generally improved code readability and fixed a lot of issues cspell reported.
|
| |
|
|
|
|
|
|
|
| |
- Added more documentation to palloc.h
- Made the use of allocation arenas more transparent throughout code
- palloc now uses c++17 alignment aware operator new.
This required further changes to the arena_deleter object to
track alignment and size of allocated objects to avoid the use
of alignment and size of base classes in case a unique_ptr was
cast to a unique_ptr of the base class.
|
| |
|
|
|
| |
- added cstddef to includes in ppmf.h
- more explicit comments in ppmf.h
- Fixed more typos and improved readiability
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- More c++, less macros
* Significantly reduced the use of unused_var and replaced it with
[[maybe_unused]]
* use enum class in ppmf.h
- Changes to testing code in ptest.h
* Catch exceptions in more places
* The verbosity of the output can now be controlled
* Display of test stats totals
- added support for cspell
- fixed various typos
- fixed SUBTARGET=nl build
- fixed more file permissions
- srcclean and add fix_permissions target to netlist makefile
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
netlist: pointer to member function code
- Address PR #9752 and issue #8590
- change comments in ppmf.h
- add support for function desciptors (IA64)
- sizeof(size_t) may be different on build targets
make plib::hash use uint64 to ensure consistent static solver
hashes across platforms (EMSCRIPTEN)
- Moved constructor and member functions outside the class declaration
with the exception of "call" member functions.
- Updated comment on accessing RDX
- Added more test cases
* Removed execution bit on certain files
I have separated out the raw processing code into `ppmf.cpp`. I have
also taken first steps to clean the abi identification.
The code submitted now supports:
a) The unknown virtual inheritance case with specific code for MSVC for
simple (i.e. scalar, void, reference, pointer) return types using the
optimized code. This is the test case only supported under MSVC and
which should return 7. Please have a look at the code. Basically
m_vptr_offset is an index into a pointer table. It needs to be
multiplied by `sizeof(void *)`.
b) If you enable PPMF_EXPERIMENTAL complex return type member functions
for MSVC will also use the optimized code path. This is explained in
detail in the code in ppmf, including caveats and possible solutions.
c) Enabling PPMF_USE_MAME_DELEGATES will use `src/lib/util/delegate.h`
as a replacement for `ppmf.h`. This allows to run the same tests
(`nltool -c tests` from standalone build) as for the ppmf code.
d) The code now also supports `clang-cl`
e) sizeof(size_t) may be different on build targets.
Make plib::hash use uint64 to ensure consistent static solver hashes
across platforms. This fixes loading static solvers (if enabled) on
EMSCRIPTEN.
|
| |
|
|
|
|
|
|
|
|
| |
This addresses most of the issues described in #8590.
* Fixed standalone Visual Studio 2019 builds, including support for clang toolchain.
* Added static stub to PMF to support MSVC ABI.
* Better aligned ppmf syntax with MAME's delegate syntax.
* Add tests/test_ppmf*.cpp testing examples given in #8590.
Also worked around issues some versions of Apple clang have with 5aaae19230bd39dda6766641672f57276a3f9ea1.
|
| |
|
|
| |
nvcc 11.3 (latest cuda tools) has an issue with some auto x(some
variable) declarations.
|
| |
|
|
|
|
| |
- update netlist makefile to more recent compilers
- prototypes for NETLISTs in macros are now created create_devinc.py
- apply ctidy recommendations
- Python None in create_device.py
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* Removed device and macro header files.
* All of those can be generated automatically so going forward there is
no need for these any longer.
* Introduced the modules concept. Modules are netlists for which
automatic lib entries are generated.
* Going forward you just store them in macro/modules and they will be
automatically registered as device elements.
* You need to do a "make generated" is src/lib/netlist/build
* Some_device.cpp still needs to be added to netlist.lua
* Added documentation on how to add devices to netlist.
* Please refer to adding_devices.md for more information.
|
| |
|
| |
* also fix an issue with netlist vs build
|
| | |
|
| |
|
|
|
|
|
|
|
| |
* removed include directory src/lib/netlist from various genie files to
avoid potential issues.
* Code using netlist should use #include "netlist/*".
* Updated includes.
* Fixed standalone makefile depend target to properly deal with relative
paths.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* On windows a simple make is now enough to build.
* Devices, macro and tests folders now included with wildcard.
* No more makefile changes if a device is added.
* Moved nld_devinc.h to generated folder
* Added to python scripts to create nld_devinc.h and lib_entries.hxx
* TEST MODE: these two files are created automatically but are not used
currently. Once I get feedback that the python scripts work in different
environments I will remove header files from devices and macro and start
using these files in production.
|
| |
|
|
| |
* Medium term this will significantly ease adding devices to netlist.
|
| | |
|
| |
|
|
| |
speed, unsure why.
|
| |
|
|
| |
* nl_base.h now basically only includes files from core.
* all headers in core compile on their own.
|
| |
|
|
| |
* Use a consistent naming scheme. This is a preparational step towards
improved parsing performance.
|
| | |
|
| |
|
|
| |
* Also contains squashed clang signedness fixes
|
| |
|
|
|
|
|
| |
* Move DIPs for 82S16, 82S115, and 2102A devices into nlm_proms
* Moved 7448 DIP to a macro. Replaced 7442 with truthtable and macro.
* Moved 74LS629 DIP into macro.
* Expand truthtable to handle 10 outputs.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* All solver scheduling is now handled by nld_solver.
* Previously, for dynamic timestepping the sub solvers would be
responsible for their scheduling themselves.
- This prevented any attemps to use parallel execution of solvers.
* Now the route is free towards experiments to use parallel execution of
solvers.
* Uses ptimed_queue_linear in solver scheduling
* Improved netlist queue implementation (template now)
* Added const delegates.
* Added subsolver stats
* Removed dead code.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
* Added netlist simulations for the following games: Space War, Barrier, Star Hawk, Speed Freak, Star Castle, War of the Worlds, Sundance, Tail Gunner, Rip Off, Armor Attack, Warrior, Solar Quest, Boxing Bugs. Removed previous samples-based sound. [Aaron Giles, Couriersud]
* Added built-in minimal artwork for Warrior. [Aaron Giles]
* Changed speaker maximum sample tracking to be based on new compile-time define SPEAKER_TRACK_MAX_SAMPLE instead of MAME_DEBUG. [Aaron Giles]
* Modernized 74164 and 74393 netlist TTL devices. [Aaron Giles]
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
* Add google test syntax compatible unit testing support. This is a very
limited subset of the google test framework and not intended ever to be
a replacement. Adding a dependency to google test for the functionality
required was considered to be an overkill.
* nltool -c tests runs unit tests if linked in. This is *not* the case
for the version of nltool compiled with TOOLS=1.
* Added unit tests for plib::pfunction.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Kidniki now achieves up to 910% when run with static solvers and with
nltool. That is significant better than the 860% we have seen
previously.
This increase is driven by using a global memory pool in the solver
code.
In addition the following refactoring and code maintenance work is
included. Please excuse the large commit, some of this took interfered
with other work and the detail development steps were ugly.
- gsl support: This commit adds pgsl.h which implements a very limited
number of the functionality of the gsl header described in the c++ core
guidelines.
- clang-tidy fixes
- A significant refactoring of palloc.h. Aligned hints were removed,
they added complexity without a significant performance gain. Vector
operations should better be done on special spans/views.
The code has been tested on linux with g++-7, g++-9, clang-11.
On Windows mingw-10 and VS2019, OSX clang-11.
|
| |
|
|
|
| |
Fix visibility of classes in nlid_system.h.
Fix tidy warning for penum.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
plists.h was splitted into plists.h, pmulti_threading.h and
ptimed_queue.h. In addition removed plists.h from a number of files it
wasn't used in.
Certain minor adjustment needed to be made for cuda toolkit 10.1 and
10.2.
|
| |
|
|
|
|
|
| |
pongf now peaks at 589% compared to 570% before.
Amongst a number of improvements in nl_base.h, the 7493 was touched.
Also has some code cleanup and hopefully faster compilation due to
extern template declarations.
|
| |
|
| |
+ cosmetic changes in nl_base.cpp and build/makefile
|
| | |
|
| |
|
|
|
|
| |
For reasons unknown to me compile optimizations do not behave for
template code. If the implementation is in separate compile units, the
code compiles and performs.
|
| |
|
|
|
|
|
| |
This needs more attention since for certain compilers there is a
considerable performance degregation. It looks like this is only
triggered if too many variants are declared in one cpp file and the
compiler stops inlining.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Thanks to Aaron Giles who made me think about a different approach.
This is a rewrite from scratch for rom devices. It uses a generic
template to implement rom devices which is used together with a
description struct to define a rom device. This leads to highly
efficient code since all information is available at compile time.
This is also a step forward to support tristate outputs. All rom devices
covered by this approach have tristate or open collector outputs and
thus all code changes to support tristate outputs can now be made
consistently in one file.
|
| | |
|
| | |
|