summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2019-02-01 08:45:32 +0100
committer couriersud <couriersud@gmx.org>2019-02-01 08:45:32 +0100
commitb9525773700243f29de378992327d1c7dc3b6ba2 (patch)
tree9ba1a94feccb2299b492286cbe6e608a0f9a3c81
parentb4ba8dc55210a81b03ee0b45bcd36478cfc66dd4 (diff)
netlist: remove trampoline code. (nw)
-rw-r--r--src/lib/netlist/analog/nld_opamps.cpp12
-rw-r--r--src/lib/netlist/analog/nlid_twoterm.h4
-rw-r--r--src/lib/netlist/devices/nld_4066.cpp4
-rw-r--r--src/lib/netlist/devices/nld_4316.cpp2
-rw-r--r--src/lib/netlist/devices/nld_74123.cpp16
-rw-r--r--src/lib/netlist/devices/nld_74153.cpp6
-rw-r--r--src/lib/netlist/devices/nld_74ls629.cpp6
-rw-r--r--src/lib/netlist/devices/nld_9310.cpp4
-rw-r--r--src/lib/netlist/devices/nld_9322.cpp8
-rw-r--r--src/lib/netlist/devices/nld_mm5837.cpp2
-rw-r--r--src/lib/netlist/devices/nld_ne555.cpp12
-rw-r--r--src/lib/netlist/devices/nld_schmitt.cpp8
-rw-r--r--src/lib/netlist/devices/nld_system.cpp4
-rw-r--r--src/lib/netlist/devices/nlid_proxy.cpp4
-rw-r--r--src/lib/netlist/nl_base.cpp8
-rw-r--r--src/lib/netlist/nl_base.h20
-rw-r--r--src/lib/netlist/solver/nld_solver.cpp2
17 files changed, 56 insertions, 66 deletions
diff --git a/src/lib/netlist/analog/nld_opamps.cpp b/src/lib/netlist/analog/nld_opamps.cpp
index 5f55a26f5d0..416fdbd76ee 100644
--- a/src/lib/netlist/analog/nld_opamps.cpp
+++ b/src/lib/netlist/analog/nld_opamps.cpp
@@ -201,7 +201,7 @@ namespace netlist
NETLIB_RESET(opamp)
{
- m_G1.do_reset();
+ m_G1.reset();
m_G1.m_RI.setTo(m_model.m_RI);
if (m_type == 1)
@@ -213,11 +213,11 @@ namespace netlist
}
else if (m_type == 3)
{
- m_EBUF->do_reset();
- m_DP->do_reset();
- m_DN->do_reset();
- m_CP->do_reset();
- m_RP.do_reset();
+ m_EBUF->reset();
+ m_DP->reset();
+ m_DN->reset();
+ m_CP->reset();
+ m_RP.reset();
m_EBUF->m_G.setTo(1.0);
m_EBUF->m_RO.setTo(m_model.m_RO);
diff --git a/src/lib/netlist/analog/nlid_twoterm.h b/src/lib/netlist/analog/nlid_twoterm.h
index ad59246643d..486efdc0add 100644
--- a/src/lib/netlist/analog/nlid_twoterm.h
+++ b/src/lib/netlist/analog/nlid_twoterm.h
@@ -78,9 +78,11 @@ NETLIB_OBJECT(twoterm)
//NETLIB_UPDATE_TERMINALSI() { }
//NETLIB_RESETI() { }
- NETLIB_UPDATEI();
public:
+
+ NETLIB_UPDATEI();
+
void solve_now();
void set(const nl_double G, const nl_double V, const nl_double I)
diff --git a/src/lib/netlist/devices/nld_4066.cpp b/src/lib/netlist/devices/nld_4066.cpp
index 2871e4898ae..25b001b5151 100644
--- a/src/lib/netlist/devices/nld_4066.cpp
+++ b/src/lib/netlist/devices/nld_4066.cpp
@@ -67,14 +67,14 @@ namespace netlist
// We only need to update the net first if this is a time stepping net
if ((1)) // m_R.m_P.net().as_analog().solver().is_timestep())
{
- m_R.update_dev();
+ m_R.update();
m_R.set_R(R);
m_R.m_P.schedule_solve_after(NLTIME_FROM_NS(1));
}
else
{
m_R.set_R(R);
- m_R.update_dev();
+ m_R.update();
}
}
}
diff --git a/src/lib/netlist/devices/nld_4316.cpp b/src/lib/netlist/devices/nld_4316.cpp
index 4290c65670c..a95cc67bfc3 100644
--- a/src/lib/netlist/devices/nld_4316.cpp
+++ b/src/lib/netlist/devices/nld_4316.cpp
@@ -43,7 +43,7 @@ namespace netlist { namespace devices {
NETLIB_UPDATE(CD4316_GATE)
{
- m_R.update_dev();
+ m_R.update();
if (m_S() && !m_E())
m_R.set_R(m_base_r());
else
diff --git a/src/lib/netlist/devices/nld_74123.cpp b/src/lib/netlist/devices/nld_74123.cpp
index ebc8eeebc83..24b79971062 100644
--- a/src/lib/netlist/devices/nld_74123.cpp
+++ b/src/lib/netlist/devices/nld_74123.cpp
@@ -257,8 +257,8 @@ namespace netlist
{
m_KP = 1.0 / (1.0 + exp(m_K()));
- m_RP.do_reset();
- m_RN.do_reset();
+ m_RP.reset();
+ m_RN.reset();
//m_RP.set_R(R_OFF);
//m_RN.set_R(R_OFF);
@@ -276,8 +276,8 @@ namespace netlist
NETLIB_RESET(74123_dip)
{
- //m_1.do_reset();
- //m_2.do_reset();
+ //m_1.reset();
+ //m_2.reset();
}
NETLIB_UPDATE(9602_dip)
@@ -289,8 +289,8 @@ namespace netlist
NETLIB_RESET(9602_dip)
{
- //m_1.do_reset();
- //m_2.do_reset();
+ //m_1.reset();
+ //m_2.reset();
}
NETLIB_UPDATE(4538_dip)
@@ -302,8 +302,8 @@ namespace netlist
NETLIB_RESET(4538_dip)
{
- m_1.do_reset();
- m_2.do_reset();
+ m_1.reset();
+ m_2.reset();
}
NETLIB_DEVICE_IMPL_DEPRECATED(74123)
diff --git a/src/lib/netlist/devices/nld_74153.cpp b/src/lib/netlist/devices/nld_74153.cpp
index ee52ceb0721..b44b7c8a3de 100644
--- a/src/lib/netlist/devices/nld_74153.cpp
+++ b/src/lib/netlist/devices/nld_74153.cpp
@@ -120,15 +120,15 @@ namespace netlist
NETLIB_UPDATE(74153)
{
m_sub.m_chan = (m_A() | (m_B()<<1));
- m_sub.update_dev();
+ m_sub.update();
}
NETLIB_UPDATE(74153_dip)
{
m_2.m_chan = m_1.m_chan = (m_A() | (m_B()<<1));
- m_1.update_dev();
- m_2.update_dev();
+ m_1.update();
+ m_2.update();
}
NETLIB_DEVICE_IMPL(74153, "TTL_74153", "+C0,+C1,+C2,+C3,+A,+B,+G")
diff --git a/src/lib/netlist/devices/nld_74ls629.cpp b/src/lib/netlist/devices/nld_74ls629.cpp
index b08654c5e40..7017774266f 100644
--- a/src/lib/netlist/devices/nld_74ls629.cpp
+++ b/src/lib/netlist/devices/nld_74ls629.cpp
@@ -100,7 +100,7 @@ namespace netlist
{
m_R_FC.set_R(90000.0);
m_R_RNG.set_R(90000.0);
- m_clock.do_reset();
+ m_clock.reset();
}
NETLIB_UPDATEI();
@@ -148,8 +148,8 @@ namespace netlist
NETLIB_RESETI()
{
- m_1.do_reset();
- m_2.do_reset();
+ m_1.reset();
+ m_2.reset();
}
private:
diff --git a/src/lib/netlist/devices/nld_9310.cpp b/src/lib/netlist/devices/nld_9310.cpp
index 11929741aed..ff708924a37 100644
--- a/src/lib/netlist/devices/nld_9310.cpp
+++ b/src/lib/netlist/devices/nld_9310.cpp
@@ -140,8 +140,8 @@ namespace netlist
NETLIB_RESET(9310)
{
- sub.do_reset();
- subABCD.do_reset();
+ sub.reset();
+ subABCD.reset();
}
NETLIB_RESET(9310_subABCD)
diff --git a/src/lib/netlist/devices/nld_9322.cpp b/src/lib/netlist/devices/nld_9322.cpp
index d27386dd05f..d72b9a561df 100644
--- a/src/lib/netlist/devices/nld_9322.cpp
+++ b/src/lib/netlist/devices/nld_9322.cpp
@@ -105,10 +105,10 @@ namespace netlist
NETLIB_UPDATE(9322)
{
- m_1.update_dev();
- m_2.update_dev();
- m_3.update_dev();
- m_4.update_dev();
+ m_1.update();
+ m_2.update();
+ m_3.update();
+ m_4.update();
}
NETLIB_DEVICE_IMPL_DEPRECATED(9322)
diff --git a/src/lib/netlist/devices/nld_mm5837.cpp b/src/lib/netlist/devices/nld_mm5837.cpp
index 9bc678598d4..223c37c35af 100644
--- a/src/lib/netlist/devices/nld_mm5837.cpp
+++ b/src/lib/netlist/devices/nld_mm5837.cpp
@@ -107,7 +107,7 @@ namespace netlist
// We only need to update the net first if this is a time stepping net
if (m_is_timestep)
- m_RV.update_dev();
+ m_RV.update();
m_RV.set(NL_FCONST(1.0) / R, V, 0.0);
m_RV.m_P.schedule_solve_after(NLTIME_FROM_NS(1));
}
diff --git a/src/lib/netlist/devices/nld_ne555.cpp b/src/lib/netlist/devices/nld_ne555.cpp
index cb29f8b3e82..e357afa6947 100644
--- a/src/lib/netlist/devices/nld_ne555.cpp
+++ b/src/lib/netlist/devices/nld_ne555.cpp
@@ -128,10 +128,10 @@ namespace netlist
NETLIB_RESET(NE555)
{
- m_R1.do_reset();
- m_R2.do_reset();
- m_R3.do_reset();
- m_RDIS.do_reset();
+ m_R1.reset();
+ m_R2.reset();
+ m_R3.reset();
+ m_RDIS.reset();
/* FIXME make resistance a parameter, properly model other variants */
m_R1.set_R(5000);
@@ -163,13 +163,13 @@ namespace netlist
if (m_last_out && !out)
{
- m_RDIS.update_dev();
+ m_RDIS.update();
m_OUT.push(m_R3.m_N());
m_RDIS.set_R(R_ON);
}
else if (!m_last_out && out)
{
- m_RDIS.update_dev();
+ m_RDIS.update();
// FIXME: Should be delayed by 100ns
m_OUT.push(m_R1.m_P());
m_RDIS.set_R(R_OFF);
diff --git a/src/lib/netlist/devices/nld_schmitt.cpp b/src/lib/netlist/devices/nld_schmitt.cpp
index 43ba4573681..394513d63a4 100644
--- a/src/lib/netlist/devices/nld_schmitt.cpp
+++ b/src/lib/netlist/devices/nld_schmitt.cpp
@@ -82,8 +82,8 @@ namespace netlist
NETLIB_RESETI()
{
m_last_state = 1;
- m_RVI.do_reset();
- m_RVO.do_reset();
+ m_RVI.reset();
+ m_RVO.reset();
m_is_timestep = m_RVO.m_P.net().solver()->has_timestep_devices();
m_RVI.set(NL_FCONST(1.0) / m_model.m_RI, m_model.m_VI, 0.0);
m_RVO.set(NL_FCONST(1.0) / m_model.m_ROL, m_model.m_VOL, 0.0);
@@ -97,7 +97,7 @@ namespace netlist
{
m_last_state = 0;
if (m_is_timestep)
- m_RVO.update_dev();
+ m_RVO.update();
m_RVO.set(NL_FCONST(1.0) / m_model.m_ROH, m_model.m_VOH, 0.0);
m_RVO.m_P.schedule_solve_after(NLTIME_FROM_NS(1));
}
@@ -108,7 +108,7 @@ namespace netlist
{
m_last_state = 1;
if (m_is_timestep)
- m_RVO.update_dev();
+ m_RVO.update();
m_RVO.set(NL_FCONST(1.0) / m_model.m_ROL, m_model.m_VOL, 0.0);
m_RVO.m_P.schedule_solve_after(NLTIME_FROM_NS(1));
}
diff --git a/src/lib/netlist/devices/nld_system.cpp b/src/lib/netlist/devices/nld_system.cpp
index 864362de783..bfc6f71e38f 100644
--- a/src/lib/netlist/devices/nld_system.cpp
+++ b/src/lib/netlist/devices/nld_system.cpp
@@ -72,7 +72,7 @@ namespace netlist
// We only need to update the net first if this is a time stepping net
if ((0)) // m_R->m_P.net().as_analog().solver()->is_timestep())
{
- m_R.update_dev();
+ m_R.update();
m_R.set_R(R);
m_R.m_P.schedule_solve_after(NLTIME_FROM_NS(1));
}
@@ -80,7 +80,7 @@ namespace netlist
{
m_R.set_R(R);
m_R.m_P.schedule_solve_after(NLTIME_FROM_NS(1));
- //m_R->update_dev();
+ //m_R->update();
}
}
}
diff --git a/src/lib/netlist/devices/nlid_proxy.cpp b/src/lib/netlist/devices/nlid_proxy.cpp
index 24396bb54d7..38a77c71423 100644
--- a/src/lib/netlist/devices/nlid_proxy.cpp
+++ b/src/lib/netlist/devices/nlid_proxy.cpp
@@ -137,7 +137,7 @@ namespace netlist
//m_Q.initial(0.0);
m_last_state = -1;
- m_RV.do_reset();
+ m_RV.reset();
m_is_timestep = m_RV.m_P.net().solver()->has_timestep_devices();
m_RV.set(NL_FCONST(1.0) / logic_family()->R_low(),
logic_family()->low_V(0.0, supply_V), 0.0);
@@ -158,7 +158,7 @@ namespace netlist
// We only need to update the net first if this is a time stepping net
if (m_is_timestep)
{
- m_RV.update_dev();
+ m_RV.update();
}
m_RV.set(NL_FCONST(1.0) / R, V, 0.0);
m_RV.m_P.schedule_solve_after(NLTIME_FROM_NS(1));
diff --git a/src/lib/netlist/nl_base.cpp b/src/lib/netlist/nl_base.cpp
index f878be1e48a..14807111ff2 100644
--- a/src/lib/netlist/nl_base.cpp
+++ b/src/lib/netlist/nl_base.cpp
@@ -341,7 +341,7 @@ void netlist_t::reset()
if (m_mainclock != nullptr)
m_mainclock->m_Q.net().set_time(netlist_time::zero());
//if (m_solver != nullptr)
- // m_solver->do_reset();
+ // m_solver->reset();
m_state->reset();
}
@@ -359,7 +359,7 @@ void netlist_state_t::reset()
// Reset all devices once !
log().verbose("Call reset on all devices:");
for (auto & dev : m_devices)
- dev->do_reset();
+ dev->reset();
// Make sure everything depending on parameters is set
// Currently analog input and logic input also
@@ -409,14 +409,14 @@ void netlist_state_t::reset()
log().verbose("Using brute force backward startup strategy");
std::size_t i = m_devices.size();
while (i>0)
- m_devices[--i]->update_dev();
+ m_devices[--i]->update();
}
break;
case 2: // brute force forward
{
log().verbose("Using brute force forward startup strategy");
for (auto &d : m_devices)
- d->update_dev();
+ d->update();
}
break;
}
diff --git a/src/lib/netlist/nl_base.h b/src/lib/netlist/nl_base.h
index 69e7ede2b80..ca75046b3e5 100644
--- a/src/lib/netlist/nl_base.h
+++ b/src/lib/netlist/nl_base.h
@@ -129,9 +129,9 @@ class NETLIB_NAME(name) : public device_t
#define NETLIB_UPDATE_TERMINALSI() public: virtual void update_terminals() override
#define NETLIB_HANDLERI(name) private: virtual void name() NL_NOEXCEPT
-#define NETLIB_UPDATEI() protected: virtual void update() NL_NOEXCEPT override
+#define NETLIB_UPDATEI() public: virtual void update() NL_NOEXCEPT override
#define NETLIB_UPDATE_PARAMI() public: virtual void update_param() override
-#define NETLIB_RESETI() protected: virtual void reset() override
+#define NETLIB_RESETI() public: virtual void reset() override
#define NETLIB_TIMESTEP(chip) void NETLIB_NAME(chip) :: timestep(const nl_double step)
@@ -1080,12 +1080,6 @@ namespace netlist
virtual ~core_device_t();
- // FIXME: useless trampoline
- void update_dev() NL_NOEXCEPT
- {
- do_update();
- }
-
void do_inc_active() NL_NOEXCEPT
{
if (m_hint_deactivate)
@@ -1101,7 +1095,6 @@ namespace netlist
dec_active();
}
- void do_reset() { reset(); }
void set_hint_deactivate(bool v) { m_hint_deactivate = v; }
bool get_hint_deactivate() { return m_hint_deactivate; }
@@ -1112,18 +1105,13 @@ namespace netlist
nperfcount_t<NL_KEEP_STATISTICS> m_stat_call_count;
nperfcount_t<NL_KEEP_STATISTICS> m_stat_inc_active;
+ virtual void update() NL_NOEXCEPT { }
+ virtual void reset() { }
protected:
- virtual void update() NL_NOEXCEPT { }
virtual void inc_active() NL_NOEXCEPT { }
virtual void dec_active() NL_NOEXCEPT { }
- virtual void reset() { }
-
- void do_update() NL_NOEXCEPT
- {
- update();
- }
log_type & log();
diff --git a/src/lib/netlist/solver/nld_solver.cpp b/src/lib/netlist/solver/nld_solver.cpp
index ac7f9155feb..372919814d9 100644
--- a/src/lib/netlist/solver/nld_solver.cpp
+++ b/src/lib/netlist/solver/nld_solver.cpp
@@ -71,7 +71,7 @@ namespace netlist
NETLIB_RESET(solver)
{
for (std::size_t i = 0; i < m_mat_solvers.size(); i++)
- m_mat_solvers[i]->do_reset();
+ m_mat_solvers[i]->reset();
}
void NETLIB_NAME(solver)::stop()