diff options
-rw-r--r-- | Assembly.cpp | 2 | ||||
-rw-r--r-- | Assembly.h | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/Assembly.cpp b/Assembly.cpp index 3614bfc4..aebe7185 100644 --- a/Assembly.cpp +++ b/Assembly.cpp @@ -144,6 +144,8 @@ AssemblyItem const& Assembly::append(AssemblyItem const& _i) void Assembly::optimise() { + std::vector<pair< vector<int>, function< vector<AssemblyItem>(vector<AssemblyItem>) > >> rules; +// rules.insert(make_pair({(int)Instruction::ADD, (int)Instruction::ADD, -(int)Push}, []() {})); } bytes Assembly::assemble() const @@ -51,11 +51,15 @@ public: int deposit() const; + bool operator==(int _mask) const { return -_mask == (int)m_type || (m_type == Operation && _mask == (int)m_data); } + private: AssemblyItemType m_type; u256 m_data; }; +inline bool operator==(int _i, AssemblyItem _ai) { return _ai.operator==(_i); } + class Assembly { public: |