aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Assembly.cpp2
-rw-r--r--Assembly.h4
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
diff --git a/Assembly.h b/Assembly.h
index 26392d14..5194d23f 100644
--- a/Assembly.h
+++ b/Assembly.h
@@ -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: