summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author couriersud <couriersud@arcor.de>2016-03-16 20:11:30 +0100
committer couriersud <couriersud@arcor.de>2016-03-16 20:11:42 +0100
commit1ed5e0df43a10d932f378aa8b723e9459fe54314 (patch)
tree9d832e3342e0b2e6668d4511502275d4dbc4e2d7
parent3db357bff45784d675acc0f85aaca8c73b52858e (diff)
Netlist: Some code simplification
-rw-r--r--src/lib/netlist/nl_base.cpp37
-rw-r--r--src/lib/netlist/nl_base.h5
-rw-r--r--src/lib/netlist/plib/plists.h8
3 files changed, 9 insertions, 41 deletions
diff --git a/src/lib/netlist/nl_base.cpp b/src/lib/netlist/nl_base.cpp
index 964ac8b4e03..80f635b3f73 100644
--- a/src/lib/netlist/nl_base.cpp
+++ b/src/lib/netlist/nl_base.cpp
@@ -653,48 +653,23 @@ ATTR_COLD void net_t::save_register()
object_t::save_register();
}
-ATTR_HOT /* inline */ void core_terminal_t::update_dev(const UINT32 mask)
-{
- inc_stat(netdev().stat_call_count);
- if ((state() & mask) != 0)
- {
- device().update_dev();
- }
-}
-
ATTR_HOT /* inline */ void net_t::update_devs()
{
//assert(m_num_cons != 0);
nl_assert(this->isRailNet());
- const UINT32 masks[4] = { 1, 5, 3, 1 };
- const UINT32 mask = masks[ (m_cur_Q << 1) | m_new_Q ];
+ const int masks[4] = { 1, 5, 3, 1 };
+ const int mask = masks[ (m_cur_Q << 1) | m_new_Q ];
m_in_queue = 2; /* mark as taken ... */
m_cur_Q = m_new_Q;
-#if 0
- core_terminal_t * t[256];
- core_terminal_t *p = m_list_active.first();
- int cnt = 0;
- while (p != NULL)
- {
- if ((p->state() & mask) != 0)
- t[cnt++] = p;
- p = m_list_active.next(p);
- }
-
- for (int i=0; i<cnt; i++)
- t[i]->device().update_dev();
-#else
- core_terminal_t *p = m_list_active.first();
-
- while (p != NULL)
+ for (core_terminal_t *p = m_list_active.first(); p != NULL; p = p->next())
{
- p->update_dev(mask);
- p = m_list_active.next(p);
+ inc_stat(p->netdev().stat_call_count);
+ if ((p->state() & mask) != 0)
+ p->device().update_dev();
}
-#endif
}
ATTR_COLD void net_t::reset()
diff --git a/src/lib/netlist/nl_base.h b/src/lib/netlist/nl_base.h
index c824a1564fc..72911c9b25c 100644
--- a/src/lib/netlist/nl_base.h
+++ b/src/lib/netlist/nl_base.h
@@ -495,16 +495,13 @@ namespace netlist
ATTR_HOT net_t & net() { return *m_net;}
ATTR_HOT bool is_state(const state_e astate) const { return (m_state == astate); }
- ATTR_HOT state_e state() const { return m_state; }
+ ATTR_HOT const state_e &state() const { return m_state; }
ATTR_HOT void set_state(const state_e astate)
{
nl_assert(astate != STATE_NONEX);
m_state = astate;
}
-
- ATTR_HOT /* inline */ void update_dev(const UINT32 mask);
-
protected:
virtual void save_register() override
{
diff --git a/src/lib/netlist/plib/plists.h b/src/lib/netlist/plib/plists.h
index 323e12dad0d..d63d4fbe898 100644
--- a/src/lib/netlist/plib/plists.h
+++ b/src/lib/netlist/plib/plists.h
@@ -210,18 +210,14 @@ public:
ATTR_HOT void remove(const _ListClass &elem)
{
- _ListClass **p = &m_head;
- while (*p != &elem)
+ _ListClass **p;
+ for (p = &m_head; *p != &elem; p = &((*p)->m_next))
{
//nl_assert(*p != NULL);
- p = &((*p)->m_next);
}
(*p) = elem.m_next;
}
-
- ATTR_HOT static _ListClass *next(const _ListClass &elem) { return elem.m_next; }
- ATTR_HOT static _ListClass *next(const _ListClass *elem) { return elem->m_next; }
ATTR_HOT _ListClass *first() const { return m_head; }
ATTR_HOT void clear() { m_head = NULL; }
ATTR_HOT bool is_empty() const { return (m_head == NULL); }