diff options
author | 2016-03-16 20:11:30 +0100 | |
---|---|---|
committer | 2016-03-16 20:11:42 +0100 | |
commit | 1ed5e0df43a10d932f378aa8b723e9459fe54314 (patch) | |
tree | 9d832e3342e0b2e6668d4511502275d4dbc4e2d7 | |
parent | 3db357bff45784d675acc0f85aaca8c73b52858e (diff) |
Netlist: Some code simplification
-rw-r--r-- | src/lib/netlist/nl_base.cpp | 37 | ||||
-rw-r--r-- | src/lib/netlist/nl_base.h | 5 | ||||
-rw-r--r-- | src/lib/netlist/plib/plists.h | 8 |
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); } |