summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/build/makefile
Commit message (Collapse)AuthorAgeFilesLines
* Removed some unnecessary backslash line continuations. (#12047) amameuser2024-02-211-5/+5
| | | | | | * 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.
* lib/netlist: Removed duplicate $(OBJ)/devices from object directories in ↵ amameuser2024-02-181-1/+0
| | | | makefile. (#12028)
* netlist: include file work (#10096) couriersud2022-07-161-1/+1
| | | | | | - 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 (#9947) couriersud2022-06-201-10/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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 (#9897) couriersud2022-06-101-7/+13
| | | | | | | | | | | | | | | | | * 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
* pong: remove obsolete external version hap2022-06-101-1/+1
|
* netlist: static solver work and improve code readability (#9841) couriersud2022-05-301-8/+9
| | | | | | | | | | | - 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.
* netlist: palloc now uses c++17 alignment aware operator new. (#9834) couriersud2022-05-271-2/+2
| | | | | | | | | - 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.
* netlist: Address comments from PR #9794, partially fix issue #9801 (#9805) couriersud2022-05-231-1/+1
| | | | | - added cstddef to includes in ppmf.h - more explicit comments in ppmf.h - Fixed more typos and improved readiability
* netlist: More c++, less macros, added support for cspell (#9794) couriersud2022-05-221-13/+51
| | | | | | | | | | | | | | | | | - 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: Fixes to address PR #9752 and issue #8590 / EMSCRIPTEN (#9773) couriersud2022-05-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* netlist: Improved PPMF target support and test coverage. (#9752) couriersud2022-05-151-0/+9
| | | | | | | | | | 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.
* netlist: Fixed standalone nltool building with nvcc. (#9731) couriersud2022-05-111-3/+3
| | | | nvcc 11.3 (latest cuda tools) has an issue with some auto x(some variable) declarations.
* netlist: standalone makefile and prototype modifications (#9708) couriersud2022-05-081-15/+16
| | | | | | - 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
* netlist: more clang lint fixes. couriersud2020-10-021-1/+1
|
* netlist: applied some clang tidy recommendations couriersud2020-09-301-1/+1
|
* netlist: move to generated header and link support files files. couriersud2020-09-121-3/+12
| | | | | | | | | | | | | * 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.
* netlist: Pedantic and clang tidy updates couriersud2020-09-061-1/+1
| | | * also fix an issue with netlist vs build
* netlist: standalone makefile support for OSX couriersud2020-08-261-3/+14
|
* netlist: Fix various issues around include directories. couriersud2020-08-251-23/+27
| | | | | | | | | * 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.
* netlist: more standalone makefile changes couriersud2020-08-241-123/+67
| | | | | | | | | | | | * 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.
* netlist: build system improvements couriersud2020-08-241-42/+62
| | | | * Medium term this will significantly ease adding devices to netlist.
* netlist: Fix some documentation issues. couriersud2020-08-221-1/+1
|
* -atarittl: Added netlist for Tank. currently runs at about 0.005% of full ↵ Ryan Holtz2020-08-161-0/+2
| | | | speed, unsure why.
* netlist: more include untangling. couriersud2020-08-121-1/+2
| | | | * nl_base.h now basically only includes files from core. * all headers in core compile on their own.
* netlist: align naming of files within the macro folder. couriersud2020-08-101-6/+6
| | | | * Use a consistent naming scheme. This is a preparational step towards improved parsing performance.
* netlist: add man target to netlist makefile. couriersud2020-08-061-2/+7
|
* netlist: Added CD4017/4022 devices. Aaron Giles2020-08-011-0/+1
| | | | * Also contains squashed clang signedness fixes
* netlist: Device refactoring Aaron Giles2020-08-011-1/+0
| | | | | | | * 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.
* netlist: Add CD4011, CD4024, 7407 and CD4053 devices. Aaron Giles2020-07-281-0/+1
|
* netlist: further nl_base.h splitting into headers in core subdir. couriersud2020-07-281-1/+1
|
* netlist: Rewrote scheduler scheduling. couriersud2020-07-251-1/+1
| | | | | | | | | | | | | | * 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.
* netlist: nld_matrix_solver is now owned by nld_solver. couriersud2020-07-251-2/+2
|
* Added netlist-based audio to early Cinematronics vector games (#6979) Aaron Giles2020-07-221-1/+1
| | | | | | | | | | * 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]
* netlist: Forgot this as part of the 74113 change. Aaron Giles2020-07-111-0/+1
|
* netlist: remove some warning suppression from makefile. couriersud2020-07-101-7/+7
|
* netlist: Add basic unit testing support. couriersud2020-07-051-3/+11
| | | | | | | | | * 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.
* netlist: Performance improvement and refactoring. [Couriersud] couriersud2020-06-131-12/+19
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* netlist: code maintenance. (nw) couriersud2020-06-061-4/+4
| | | | | Fix visibility of classes in nlid_system.h. Fix tidy warning for penum.
* netlist: clang-tidy, header order fixes. (nw) couriersud2020-06-011-9/+9
|
* netlist: move multiparameter streaming into nl_interface.h (nw) couriersud2020-06-011-3/+4
|
* netlist: split plists.h and fix nvcc compile for 10.2 (nw) couriersud2020-05-251-6/+18
| | | | | | | | | 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.
* netlist: improve performance. [Couriersud] couriersud2020-05-241-3/+4
| | | | | | | 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.
* netlist: fix a memory issue. (nw) couriersud2020-05-241-4/+4
| | | + cosmetic changes in nl_base.cpp and build/makefile
* netlist: various clang-tidy-11 fixes. (nw) couriersud2020-05-241-5/+10
|
* netlist: Fix performance issues and VC2019. [Couriersud] couriersud2020-05-221-0/+3
| | | | | | 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.
* netlist: consolidate 9316-type counters. [Couriersud] couriersud2020-05-221-2/+0
| | | | | | | 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.
* netlist: rewrite rom devices from scratch. [Couriersud] couriersud2020-05-171-3/+2
| | | | | | | | | | | | | 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.
* netlist: Added devices CD4013, CD4069, CD4070 Frank Palazzolo2020-05-151-0/+1
|
* netlist: Add 74377/74378/74379 devices to netlist. [Aaron Giles] Aaron Giles2020-05-151-1/+2
|