Netlist: Some code simplification

This commit is contained in:
couriersud 2016-03-16 20:11:30 +01:00
parent 3db357bff4
commit 1ed5e0df43
3 changed files with 9 additions and 41 deletions

View File

@ -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)
for (core_terminal_t *p = m_list_active.first(); p != NULL; p = p->next())
{
inc_stat(p->netdev().stat_call_count);
if ((p->state() & mask) != 0)
t[cnt++] = p;
p = m_list_active.next(p);
p->device().update_dev();
}
for (int i=0; i<cnt; i++)
t[i]->device().update_dev();
#else
core_terminal_t *p = m_list_active.first();
while (p != NULL)
{
p->update_dev(mask);
p = m_list_active.next(p);
}
#endif
}
ATTR_COLD void net_t::reset()

View File

@ -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
{

View File

@ -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); }