diff options
Diffstat (limited to 'src/lib/netlist/nl_setup.h')
-rw-r--r-- | src/lib/netlist/nl_setup.h | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/src/lib/netlist/nl_setup.h b/src/lib/netlist/nl_setup.h index d22b78c3703..dad4f894375 100644 --- a/src/lib/netlist/nl_setup.h +++ b/src/lib/netlist/nl_setup.h @@ -107,15 +107,26 @@ void NETLIST_NAME(name)([[maybe_unused]] netlist::nlparse_t &setup) \ // truth table defines // ----------------------------------------------------------------------------- +#if 0 #define TRUTHTABLE_START(cname, in, out, pdef_params) \ - NETLIST_START(cname) \ - netlist::tt_desc desc; \ - desc.name = #cname ; \ - desc.ni = in; \ - desc.no = out; \ - desc.family = ""; \ + void NETLIST_NAME(cname ## _impl)(netlist::tt_desc &desc); \ + static NETLIST_START(cname) \ + netlist::tt_desc xdesc{ #cname, in, out, "" }; \ auto sloc = PSOURCELOC(); \ - const pstring def_params = pdef_params; + const pstring def_params = pdef_params; \ + NETLIST_NAME(cname ## _impl)(xdesc); \ + setup.truth_table_create(xdesc, def_params, std::move(sloc)); \ + NETLIST_END() \ + static void NETLIST_NAME(cname ## _impl)(netlist::tt_desc &desc) \ + { +#else +#define TRUTHTABLE_START(cname, in, out, pdef_params) \ + NETLIST_START(cname) \ + netlist::tt_desc desc{ #cname, in, out, "", {} }; \ + auto sloc = PSOURCELOC(); \ + const pstring def_params = pdef_params; \ + plib::functor_guard lg([&](){ setup.truth_table_create(desc, def_params, std::move(sloc)); }); +#endif #define TT_HEAD(x) \ desc.desc.emplace_back(x); @@ -127,7 +138,6 @@ void NETLIST_NAME(name)([[maybe_unused]] netlist::nlparse_t &setup) \ desc.family = x; #define TRUTHTABLE_END() \ - setup.truth_table_create(desc, def_params, std::move(sloc)); \ NETLIST_END() #define TRUTHTABLE_ENTRY(name) \ @@ -143,12 +153,11 @@ namespace netlist struct tt_desc { - tt_desc() : ni(0), no(0) { } pstring name; unsigned long ni; unsigned long no; - std::vector<pstring> desc; pstring family; + std::vector<pstring> desc; }; // ---------------------------------------------------------------------------------------- @@ -174,7 +183,7 @@ namespace netlist // last argument only needed by nltool void register_dev(const pstring &classname, const pstring &name, const std::vector<pstring> ¶ms_and_connections, - factory::element_t **felem = nullptr); + factory::element_t **factory_element = nullptr); void register_dev(const pstring &classname, std::initializer_list<const char *> more_parameters); void register_dev(const pstring &classname, const pstring &name) { |