diff options
author | 2020-10-02 19:57:06 +0200 | |
---|---|---|
committer | 2020-10-02 19:58:30 +0200 | |
commit | fe47fcf9f193f1a2ffb4d3eedfd134ff6b216e62 (patch) | |
tree | 12a0cffb0e2007c2f9e5e7f70cfb76737fbacdc7 /src/lib/netlist/plib/pfunction.cpp | |
parent | 1dcedeee9dffdad500c8a85ffe8878a762261e4d (diff) |
netlist: more clang lint fixes.
Diffstat (limited to 'src/lib/netlist/plib/pfunction.cpp')
-rw-r--r-- | src/lib/netlist/plib/pfunction.cpp | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/src/lib/netlist/plib/pfunction.cpp b/src/lib/netlist/plib/pfunction.cpp index c424c483449..0cf4fc4cdc2 100644 --- a/src/lib/netlist/plib/pfunction.cpp +++ b/src/lib/netlist/plib/pfunction.cpp @@ -118,7 +118,7 @@ namespace plib { auto p = pcmds().find(cmd); if (p != pcmds().end()) { - rc.m_cmd = p->second.cmd; + rc = rpn_inst(p->second.cmd); stk -= p->second.adj; } else @@ -127,23 +127,20 @@ namespace plib { { if (inputs[i] == cmd) { - rc.m_cmd = PUSH_INPUT; - rc.m_param.index = i; + rc = rpn_inst(PUSH_INPUT, i); stk += 1; break; } } - if (rc.m_cmd != PUSH_INPUT) + if (rc.cmd() != PUSH_INPUT) { - using fl_t = decltype(rc.m_param.val); - rc.m_cmd = PUSH_CONST; bool err(false); auto rs(plib::right(cmd,1)); - auto r=units_si<fl_t>().find(rs); - if (r == units_si<fl_t>().end()) - rc.m_param.val = plib::pstonum_ne<fl_t>(cmd, err); + auto r=units_si<NT>().find(rs); + if (r == units_si<NT>().end()) + rc = rpn_inst(plib::pstonum_ne<NT>(cmd, err)); else - rc.m_param.val = plib::pstonum_ne<fl_t>(plib::left(cmd, cmd.length()-1), err) * r->second; + rc = rpn_inst(plib::pstonum_ne<NT>(plib::left(cmd, cmd.length()-1), err) * r->second); if (err) throw pexception(plib::pfmt("pfunction: unknown/misformatted token <{1}> in <{2}>")(cmd)(expr)); stk += 1; @@ -358,13 +355,13 @@ namespace plib { template <typename NT> NT pfunction<NT>::evaluate(const values_container &values) noexcept { - std::array<value_type, MAX_STACK> stack; + std::array<value_type, MAX_STACK> stack; // NOLINT value_type *ptr = stack.data(); constexpr const auto zero = plib::constants<value_type>::zero(); constexpr const auto one = plib::constants<value_type>::one(); for (const auto &rc : m_precompiled) { - switch (rc.m_cmd) + switch (rc.cmd()) { OP(ADD, 1, ST2 + ST1) OP(MULT, 1, ST2 * ST1) @@ -386,8 +383,8 @@ namespace plib { OP(MIN, 1, std::min(ST2, ST1)) OP(TRUNC, 0, plib::trunc(ST2)) OP0(RAND, lfsr_random<value_type>(m_lfsr)) - OP0(PUSH_INPUT, values[rc.m_param.index]) - OP0(PUSH_CONST, rc.m_param.val) + OP0(PUSH_INPUT, values[rc.index()]) + OP0(PUSH_CONST, rc.value()) // please compiler case LP: case RP: @@ -403,22 +400,22 @@ namespace plib { #undef OP #undef OP0 -#define ST0 m_precompiled[ptr+0].m_param.val -#define ST1 m_precompiled[ptr-1].m_param.val -#define ST2 m_precompiled[ptr-2].m_param.val +#define ST0 m_precompiled[ptr+0].value() +#define ST1 m_precompiled[ptr-1].value() +#define ST2 m_precompiled[ptr-2].value() #define OP(OP, ADJ, EXPR) \ case OP: \ if (ADJ == 2) {\ - if (m_precompiled[ptr-3].m_cmd == PUSH_CONST && m_precompiled[ptr-2].m_cmd == PUSH_CONST && m_precompiled[ptr-1].m_cmd == PUSH_CONST) \ + if (m_precompiled[ptr-3].cmd() == PUSH_CONST && m_precompiled[ptr-2].cmd() == PUSH_CONST && m_precompiled[ptr-1].cmd() == PUSH_CONST) \ { ptr--; m_precompiled[ptr-2] = rpn_inst(EXPR); n -= 3; ptr++; std::copy(m_precompiled.begin()+(ptr+1), m_precompiled.end(), m_precompiled.begin()+(ptr-2)); ptr-=2;} \ else { ptr++; } \ } else if (ADJ == 1) {\ - if (m_precompiled[ptr-2].m_cmd == PUSH_CONST && m_precompiled[ptr-1].m_cmd == PUSH_CONST) \ + if (m_precompiled[ptr-2].cmd() == PUSH_CONST && m_precompiled[ptr-1].cmd() == PUSH_CONST) \ { m_precompiled[ptr-2] = rpn_inst(EXPR); n -= 2; std::copy(m_precompiled.begin()+(ptr+1), m_precompiled.end(), m_precompiled.begin()+(ptr-1)); ptr--;} \ else { ptr++; } \ } else if (ADJ == 0) {\ - if (m_precompiled[ptr-1].m_cmd == PUSH_CONST) \ + if (m_precompiled[ptr-1].cmd() == PUSH_CONST) \ { ptr++; m_precompiled[ptr-2] = rpn_inst(EXPR); n -= 1; ptr--; std::copy(m_precompiled.begin()+(ptr+1), m_precompiled.end(), m_precompiled.begin()+(ptr)); } \ else { ptr++; } \ } else ptr++; \ @@ -438,7 +435,7 @@ namespace plib { auto n = m_precompiled.size(); for (; ptr < n; ) { - switch (m_precompiled[ptr].m_cmd) + switch (m_precompiled[ptr].cmd()) { OP(ADD, 1, ST2 + ST1) OP(MULT, 1, ST2 * ST1) @@ -460,8 +457,8 @@ namespace plib { OP(MIN, 1, std::min(ST2, ST1)) OP(TRUNC, 0, plib::trunc(ST2)) OP0(RAND, lfsr_random<value_type>(m_lfsr)) - OP0(PUSH_INPUT, values[rc.m_param.index]) - OP0(PUSH_CONST, rc.m_param.val) + OP0(PUSH_INPUT, values[rc.index()]) + OP0(PUSH_CONST, rc.value()) // please compiler case LP: case RP: |