summaryrefslogtreecommitdiffstats
path: root/src/lib/netlist/plib/pfunction.h
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2020-10-02 19:33:22 +0200
committer couriersud <couriersud@gmx.org>2020-10-02 19:58:29 +0200
commit1dcedeee9dffdad500c8a85ffe8878a762261e4d (patch)
tree256142695ccd56bf994c300e54072d9e1cc55120 /src/lib/netlist/plib/pfunction.h
parent58b4e89c0c724fba2bea87e32054059bd8b17f66 (diff)
netlist: Add parse optimization to pfunction.
* "(1 + 2)*a" now during parse step will be rewritten to "3*a".
Diffstat (limited to 'src/lib/netlist/plib/pfunction.h')
-rw-r--r--src/lib/netlist/plib/pfunction.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/netlist/plib/pfunction.h b/src/lib/netlist/plib/pfunction.h
index 0178e81c04e..d694cbe6a89 100644
--- a/src/lib/netlist/plib/pfunction.h
+++ b/src/lib/netlist/plib/pfunction.h
@@ -62,6 +62,10 @@ namespace plib {
{
m_param.val = plib::constants<NT>::zero();
}
+ rpn_inst(NT v) : m_cmd(PUSH_CONST)
+ {
+ m_param.val = v;
+ }
rpn_cmd m_cmd;
union
{
@@ -138,6 +142,7 @@ namespace plib {
private:
+ void compress();
void compile_postfix(const inputs_container &inputs,
const std::vector<pstring> &cmds, const pstring &expr);